Фильтрация объектов с использованием параметра layerDefs в запросах WMS

В спецификации WMS отсутствует механизм фильтрации, в котором вы можете добавить строку запроса или условие в запрос GetMap. Хотя фильтры могут применяться с использованием правил в SLD, вы будете вынуждены воссоздать часть символов в SLD в то же время.

В качестве альтернативы, ArcGIS Server вводит в употребление ориентированный на конкретного поставщика параметр называемый layerDefs для WMS-операций GetMap and GetFeatureInfo. Это обеспечивает более легкий способ для клиента отфильтровать объекты отдельных слоев в экспортируемой карте, посредством указания определяющих выражений для этих слоев.

Параметр layerDefs происходит из параметра layerDefs картографического сервиса ArcGIS Server. Дополнительная информация по использованию данного параметра приведена в документации ArcGIS REST API.

Использование layerDefs в запросе

Ниже приведены некоторые примеры того, как использовать параметр layerDefs в запросах GetMap и GetFeatureInfo.

ПримечаниеПримечание:

Имейте в виду, что выражения, устанавливающие фильтр в параметре layerDefs, являются взаимоисключающими среди тех, которые определены в SLD и/или SLD_BODY. Когда оба присутствуют в запросе GetMap или GetFeatureInfo, layerDefs имеет более низкий приоритет и будет проигнорирован.

GetMap

Фильтровать слой стран для отображения только тех стран, население которых превышает один миллион: layerDefs={"country":"POP_CNTRY>100000000"}.

Пример запроса:

http://server_name/arcgis/services/service_name/MapServer/WmsServer?VERSION=1.3.0&REQUEST=GetMap&CRS=CRS:84&BBOX=-180,-90,180,83.604158999999996&WIDTH=660&HEIGHT=318&LAYERS=country&STYLES=default&EXCEPTIONS=xml&FORMAT=image/png&BGCOLOR=0xFEFFFF&TRANSPARENT=TRUE&layerDefs={"country":"POP_CNTRY>100000000"}

GetFeatureInfo

Фильтровать слой стран для получения информации только из тех стран, население которых превышает один миллион и по территории которых протекает Амазонка: layerDefs={"country":"POP_CNTRY>100000000","rivers":"NAME LIKE 'Amazon'"}.

Пример запроса:

http://server_name/arcgis/services/service_name/MapServer/WmsServer?VERSION=1.3.0&REQUEST=GetFeatureInfo&CRS=CRS:84&BBOX=-180,-90,180,83.604158999999996&WIDTH=660&HEIGHT=318&LAYERS=country,rivers&STYLES=default,default&EXCEPTIONS=xml&FORMAT=image/png&BGCOLOR=0xFEFFFF&TRANSPARENT=TRUE&QUERY_LAYERS=country,rivers&INFO_FORMAT=text/html&I=50&J=50&layerDefs={"country":"POP_CNTRY>100000000","rivers":"NAME LIKE 'Amazon'"}

9/12/2013