Skip To Content

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

В этом разделе

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

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

Параметр 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://gisserver.domain.com:6080/arcgis/services/MyMapService/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={"страна":"POP_CNTRY>100000000"}

GetFeatureInfo

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

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

http://gisserver.domain.com:6080/arcgis/services/MyMapService/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'"}