Skip To Content

Filtrar entidades usando el parámetro layerDefs en solicitudes WMS

La especificación WMS carece de mecanismo de filtrado en el que puede añadir una cadena de caracteres de consulta o una cláusula where a una solicitud GetMap. Aunque los filtros se pueden aplicar utilizando las reglas de SLD, tendrá que volver a crear la parte de simbologías en el SLD al mismo tiempo.

Como alternativa, ArcGIS Server implementa un parámetro específico del proveedor llamado layerDefs para las operaciones GetMap y GetFeatureInfo de WMS. Esto proporciona un modo más sencillo para que el cliente filtre las entidades de capas individuales en el mapa exportado especificando expresiones de definición para esas capas.

El parámetro layerDefs se deriva del parámetro layerDefs del servicio de mapas de ArcGIS Server. Para obtener más información sobre este parámetro, consulte la documentación de la API REST de ArcGIS.

Usar layerDefs en una solicitud

Los siguientes son algunos ejemplos de cómo utilizar el parámetro layerDefs en solicitudes GetMap y GetFeatureInfo.

Nota:

Tenga en cuenta que las expresiones de filtro en el parámetro layerDefs son mutuamente excluyentes de las definidas en SLD o SLD_BODY. Cuando ambas están presentes en una solicitud GetMap o GetFeatureInfo, layerDefs tiene una prioridad más baja y se ignora.

GetMap

Filtra la capa de país al mostrar solo los países con una población superior a 1 millón de habitantes: layerDefs={" country":"POP_CNTRY>100000000"}.

Solicitud de muestra:

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 1 millón de habitantes y con un río llamado Amazonas: layerDefs={" country":"POP_CNTRY>100000000"rivers":"NAME LIKE 'Amazon'"}.

Solicitud de muestra:

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'"}

Filtrar imágenes en solicitudes WMS

Un WMS basado en un servicio de imágenes admite el filtrado de imágenes mediante parámetros específicos del proveedor. Los usuarios pueden especificar una condición mediante el parámetro Query o el Id. de imagen mediante el parámetro Images. Los parámetros se aplican a los servicios publicados desde datasets de mosaico.

Imágenes

El parámetro IMÁGENES consulta rásteres individuales por sus Id. de objeto en el dataset de mosaico.

Solicitud: muestra una imagen cuyo Id. de objeto sea 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

Solicitud: muestra dos imágenes cuyos Id. de objeto sean 3 y 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

CONSULTA

En 10.3, el WMS del servicio de imágenes admite un nuevo parámetro Query. El parámetro Consulta consulta imágenes según una condición.

Solicitud: muestra imágenes cuyo nombre de proyecto comienza con "Cotton". En el ejemplo projectName es un nombre de campo personalizado del dataset de mosaico:

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'

Nota:

El parámetro Query solo toma las consultas estandarizadas de forma predeterminada. Para obtener más información, consulte Acerca de las consultas estandarizadas.