В спецификации 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
Отфильтровать слой стран, отображая только те, население которых превышает 1 миллион человек: 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={"country":"POP_CNTRY>100000000"}
GetFeatureInfo
Отфильтровать слой стран, получая информацию только для стран с населением более 1 миллиона человек и содержащих реку с именем Амазонка: 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'"}
Фильтрация изображений в запросах WMS
WMS на основе сервиса изображений поддерживает фильтрацию изображений с использованием параметров, зависящих от поставщика. Пользователи могут либо указать условие с помощью параметра Query, либо идентификаторы изображений через параметр Images. Эти параметры применяются к сервисам, опубликованным из наборов данных мозаики.
Изображения
Параметр IMAGES запрашивает отдельные растры по их идентификаторам объектов в наборе данных мозаики.
Запрос: Отображает одно изображение, идентификатор объекта которого равен 1:
http://gisserver.domain.com:6080/arcgis/services/folder/ServiceName/ImageServer/WMSServer?REQUEST=GetMap&SERVICE=WMS&VERSION=1.3.0&LAYERS=0&STYLES=&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&CRS=EPSG:4326&BBOX=17.9995833333334,-161.000416666667,23.0004166666666,-153.999583333333&WIDTH=981&HEIGHT=826&images=1
Запрос: Отображает два изображения, идентификаторы объектов которых равны 3 и 5:
http://gisserver.domain.com:6080/arcgis/services/folder/ServiceName/ImageServer/WMSServer?REQUEST=GetMap&SERVICE=WMS&VERSION=1.3.0&LAYERS=0&STYLES=&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&CRS=EPSG:4326&BBOX=17.9995833333334,-161.000416666667,23.0004166666666,-153.999583333333&WIDTH=981&HEIGHT=826&images=3,5
параметр QUERY
В версии 10.3 сервис изображений WMS поддерживает новый параметр запроса Query. Параметр Query запрашивает изображения на основе заданного условия.
Запрос: Отображает изображения, название проекта которых начинается со слова "Cotton" (хлопок). В этом примере название проекта -- это имя настраиваемого поля в наборе данных мозаики:
http://gisserver.domain.com:6080/arcgis/services/ServiceName/ImageServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS=CRS:84&BBOX=-.00012294555236728837,-.00056041068726637587,.0038293544476327114,.0040723426808816961&WIDTH=697&HEIGHT=817&LAYERS=0&STYLES=&FORMAT=image/png&BGCOLOR=0xFEFFFF&TRANSPARENT=TRUE&Query=ProjectName like 'Cotton%25'
Примечание:
По умолчанию параметр Query принимает только стандартизированные запросы. Подробнее см. раздел О стандартизированных запросах.