1

How does ArcGIS Desktop (and probably most other WMS clients) request data from supported servers? If we take their own sample server as an example, I can understand how Desktop connects to the server, knows which layers are on it etc, but when I add the service to Desktop and it starts showing map images, how does it get those images? I can't find anything in the XML file that points to any kind of source for these images, although it has SRS, boundingbox and all the metadata about the maps.

What am I missing here?

EDIT: To clarify, I have a (homemade) server application, which creates and sends the following XML file upon receiving a GetCapabilities request:

<?xml version="1.0" encoding="UTF-8"?>
<WMS_Capabilities xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Service>
        <Name>Name</Name>
        <Title>EivaTMS</Title>
        <Abstract>Something clever about this WMS</Abstract>
        <Capability>
            <Layer>
                <Title>kraken.db</Title>
                <Name>Name</Name>
                <Abstract/>
                <SRS>OSGEO:41001</SRS>
                <Profile>NaviPacLocal</Profile>
                <Format>image/png</Format>
                <BoundingBox>
                    <xmin>140</xmin>
                    <xmax>140</xmax>
                    <ymin>80</ymin>
                    <ymax>80</ymax>
                    <zmin>0</zmin>
                    <zmax>0</zmax>
                </BoundingBox>
                <MapSize>256</MapSize>
                <CellSize>3</CellSize>
                <MaxLevel>32</MaxLevel>                
            </Layer>
        </Capability>
    </Service>
</WMS_Capabilities>

I'm well away that this XML doesn't stand a chance when comparing it to the WMS specification but this is due to it being used for my own client at some point, but now I'm in need of being able to use it with ArcGIS. Now, ArcGIS Explorer is obviously able to send a GetCapabilities request (some_url?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities) and it's able to see 'kraken.db' which I assume is because of the 'Layer' tag it's surrounded by. I can see my server receives the request and that it sends the XML back to ArcGIS, which gives me this window where I have to choose a service:

enter image description here

But when I try to add it, I get a "Unable to add service(s)" error. This isn't strange since my XML lacks a lot of information, but I have difficulties finding out exactly what kind of information ArcGIS Explorer needs in this situation.

closed as too broad by Brad Nesom, Devdatta Tengshe, Fezter, user2856, R.K. Feb 5 '15 at 9:27

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Could you edit the question to explain why you'd like to know this - are you trying to fix something which isn't working, or emulate this behaviour in another client, etc? – Stephen Lead Feb 4 '15 at 22:30
  • All the information needed to generate a map is in the GetCapabilities xml returned by that url, in particular the GetMap capability. See WMS for some basic info. Here is an example. – user2856 Feb 5 '15 at 8:02
4

Your desktop client requests the layer via OGC WMS standard via http REST requests:

The online resource of each operation supported by a compliant WMS server is an HTTP uniform resource locator (URL), so a WMS service can be considered as a Representational State Transfer (REST) service. Unlike a standard web service, a SOAP client is not necessary for consuming a WMS service, and a web browser is the simplest client. You can get a WMS service's service-level metadata, a map image, or attribute values of a feature by sending a URL request to the server and viewing the corresponding responses in the browser either as an XML document or an image.

Links below provide a general overview of this process:

Communicating with a WMS service in a web browser

GeoServer WMS Intro (not ArcGIS, but similar concepts)

  • Ah yes, it was the GetMap request I was looking for! – Left4Cookies Feb 9 '15 at 17:57

Not the answer you're looking for? Browse other questions tagged or ask your own question.