2

Is it possible to add just a single layer from WMS service to a map in ArcGIS (Desktop/Portal)? As an example, I am looking at the Maritime Boundaries WMS Service from: Flanders Marine Institute (VLIZ) - Geoserver WMS Service

The service consists of ~40 layers and I'm only interested in one of them. Is it possible? What should the URL for this query look like?

2

Yes you can choose to add only one layer to ArcMap - unfortunately it still appears as a child of the Web Map Service but will at least tidy up the list of layers in the Table of Contents.

You can do this in two ways:

When Adding the Service

When connected to the service in GIS Servers, drill down to the individual layer you want and select add. This will bring in only the selected layer from the WMS.

Select a layer at the Add Data Dialogue

Changing the Selected Layers in ArcMap

Once you have added the WMS to ArcMap you can select and de-select individual layers from the WMS layer properties dialogue (right click on the WMS layer name in the table of contents, and choose Properties):

Configure WMS layers from the Layer Properties

ArcGIS Portal

In ArcGIS Portal/Online when add a WMS as an Item, Portal will ask which layers you want to enable. This lets you save a WMS with specific layers active that you can then add to maps.

This is especially useful if you want to use one of the layers as a basemap.

Adding WMS to portal, select layers

Editing the capabilities document

When adding a WMS, ArcGIS will pull the Capabilities document for the service and then list all the available layers so it isn't possible to modify the selected layers by changing the URL to the capabilities document itself.

If you really wanted to do it this way you could save and create a custom capabilities XML document by removing the layer elements you don't need, to leave only the ones you want.

<Layer queryable="1" opaque="0">...</Layer> <!-- << Remove these -->
<Layer queryable="1" opaque="0">...</Layer> <!-- << Remove these -->
<Layer queryable="1" opaque="0">
<Name>coasts_per_ocean</Name>
<Title>Coasts per ocean (20150814)</Title>
<Abstract/>
<KeywordList>
<Keyword>coasts_per_ocean</Keyword>
<Keyword>features</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<CRS>CRS:84</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-181.800003051758</westBoundLongitude>
<eastBoundLongitude>181.800003051758</eastBoundLongitude>
<southBoundLatitude>-90.8683242797852</southBoundLatitude>
<northBoundLatitude>84.533821105957</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="CRS:84" minx="-181.800003051758" miny="-90.8683242797852" maxx="181.800003051758" maxy="84.533821105957"/>
<BoundingBox CRS="EPSG:4326" minx="-90.8683242797852" miny="-181.800003051758" maxx="84.533821105957" maxy="181.800003051758"/>
<Style>
<Name>line_orange</Name>
<Title>Line orange</Title>
<Abstract>An orange line</Abstract>
<LegendURL width="20" height="20">
<Format>image/png</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://geo.vliz.be:80/geoserver/MarineRegions/ows?service=WMS&request=GetLegendGraphic&format=image%2Fpng&width=20&height=20&layer=coasts_per_ocean"/>
</LegendURL>
</Style>
</Layer>
<Layer queryable="1" opaque="0">...</Layer> <!-- << Remove these -->
<Layer queryable="1" opaque="0">...</Layer> <!-- << Remove these -->

You would then need to save this custom capabilities to your own webserver and access it from ArcMap. This can be useful if the capabilities document is faulty or causes a bug in your software and the web service is out of your control, otherwise it's much easier to use the built in functionality to select specific layers.

  • @ kes: Thanks for the info. If I understand you correctly, in order to pull a single layer out of a service, I could configure the Get Capabilities document to pull a single layer? How do I go about this in Portal? – Magda May 6 '16 at 15:48
  • @Magda - for portal you can add the layer from the WMS as an Item to your content, then add it to the map. When you add as an Item portal will give you the option of choosing individual layer. To edit the capabilities document instead you would have to open the XML and remove all the other layers from the specification, then save to your own web server somewhere - I wouldn't recommend this though unless you really have to do it. – kes May 6 '16 at 20:27
  • thanks for the info, very helpful, I will give this a go! – Magda May 8 '16 at 19:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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