Select to view content in your preferred language

Use a WorldWind WMS Layer

4053
1
12-09-2013 01:42 PM
GaryChristenot
New Contributor
I am looking at ArcGIS Explorer with some .Net add-ins to replace a Java-based WorldWind application that was developed for our organization a while back.  We are behind a very restrictive firewall and cannot access the provided ESRI base maps with Explorer.  My concept was to use the internal WorldWind WMS server that is set up and providing the background Blue Marble imagery for our present application default layer.  However, when I add the WMS server as a new layer in Explorer, everything seems to connect fine but I never get any imagery from the WMS server displayed in the Explorer mapping window.

In one attempt I did get the Blue Marble star field and the tell-tale blue halo around what would have been the periphery of the globe, but that is all.  No terrain imagery tiles.  But for the most part all I get is a blank white screen with the lat-long grid overlaid on it.

I've attached an image of what the layer properties look like when I right click on the layer in the Explorer content window and select properties.

I've also tried to capture the network traffic between Explorer and the WMS server as I pan and zoom around the mapping window and the server is returning a "bad request" error message with an error stating that the required STYLE parameter was not included in the request.

Can anyone help me get my in-house WMS server to populate the Explorer mapping window?

Thanks.
0 Kudos
1 Reply
GaryChristenot
New Contributor
Digging a little deeper revealed the following.

I ran a native WorldWind application and observed the network traffic with a packet sniffer.  When it sent a GetMap request, the request included a styles parameter as "STYLES=".  When ArcGIS Explorer sends a GetMap request to the same WMS, the styles parameter looks like this:  "STYLES=,,,,,,,,,".

Opening up the WorldWind WMS Java code, the section of code that validates the GetMap request includes the following:

this.styles = req.getParameterValues(WMS.Param.STYLES.toString());
        if (null == this.styles || 0 == this.styles.length)
        {
            String msg = Logging.getMessage("WMS.MissingRequiredParameter", WMS.Param.STYLES.toString());
            Logging.logger().severe(msg);
            throw new WMSServiceException(msg);
        }

I'm not much of a Java programmer but the behaviors suggest that the "STYLES=,,,,,,,,," parameter being sent by Explorer isn't passing the check performed by the WMS to validate the request and so the WMS is throwing an exception.
0 Kudos