Filtrar entidades usando el parámetro layerDefs en solicitudes WMS
En este tema
En la especificación de WMS falta un mecanismo de filtrado en el que puede añadir una cadena de caracteres de búsqueda o una cláusula WHERE en una solicitud GetMap. Aunque los filtros se pueden aplicar utilizando las reglas del SLD, tendrá que volver a crear la parte de simbologías en el SLD al mismo tiempo.
ArcGIS Server también implementa un parámetro específico del proveedor llamado layerDefs para las operaciones GetMap y GetFeatureInfo de WMS. Así se dispone de un método más sencillo para que el cliente filtre las entidades de cada una de las capas en el mapa exportado especificando las expresiones de definición de esas capas.
El parámetro layerDefs deriva del parámetro layerDefs del servicio de mapa de ArcGIS Server. Para obtener más información acerca de este parámetro, consulte la documentación de la API de ArcGIS REST.
Usar layerDefs en una solicitud
Los siguientes son algunos ejemplos de uso del parámetro layerDefs en las solicitudes GetMap y GetFeatureInfo.
Nota:
Tenga en cuenta que las expresiones de filtro del parámetro layerDefs son mutuamente excluyentes de las definidas en SLD o SLD_BODY. Cuando las dos están presentes en una solicitud GetMap o GetFeatureInfo, layerDefs tiene menos prioridad y se ignora.
GetMap
Filtra la capa de país al mostrar solo los países con una población superior a un millón: layerDefs={"country":"POP_CNTRY>100000000"}.
Ejemplo de solicitud:
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
Filtra la capa de país y obtiene información solo de los países con una población superior a un millón y con un río llamado Amazonas: layerDefs={"country":"POP_CNTRY>100000000","rivers":"NAME LIKE 'Amazon'"}.
Ejemplo de solicitud:
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'"}