Skip To Content

Filtrage d’entités à l’aide du paramètre layerDefs dans les requêtes WMS

La spécification WMS est dépourvue d’un mécanisme de filtrage permettant d’ajouter une chaîne de requête ou une clause where dans une requête layerDefs. Bien que les filtres puissent être appliqués à l’aide des règles dans le SLD, il vous faudra en même temps recréer la partie symbologies dans le SDL.

Une autre possibilité est qu’ArcGIS Server mette en œuvre un paramètre spécifique au fournisseur et nommé layerDefs pour les opérations WMS GetMap et GetFeatureInfo. Cela fournit au client une méthode plus légère pour filtrer les entités de couches spécifiques dans la carte exportée en spécifiant des expressions de définition pour ces couches.

Le paramètre layerDefs est dérivé du paramètre layerDefs du service de carte ArcGIS Server. Pour plus d’informations sur ce paramètre, reportez-vous à la documentation de l’API REST ArcGIS.

Utilisation de layerDefs dans une requête

Voici quelques exemples d’utilisation du paramètre layerDefs dans les requêtes GetMap et GetFeatureInfo.

Remarque :

N’oubliez pas que les expressions de filtre dans le paramètre layerDefs sont mutuellement exclusives avec celles définies dans le SDL et/ou SLD_BODY Lorsque les deux figurent dans une requête GetMap ou GetFeatureInfo, le paramètre layerDefs a une priorité plus faible et est ignoré.

GetMap

Filtrez la couche de pays en n’affichant que les pays dont la population dépasse 1 million : layerDefs={"country":"POP_CNTRY>100000000"}.

Exemple de requête :

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

Filtrez la couche de pays en n’obtenant que des informations pour les pays dont la population dépasse 1 million et qui contiennent un fleuve nommé Amazone : layerDefs={"country":"POP_CNTRY>100000000","rivers":"NAME LIKE 'Amazon'"}

Exemple de requête :

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

Filtrage d’images dans des requêtes WMS

Un WMS basé sur un service d’imagerie prend en charge le filtrage d’image à l’aide de paramètres spécifiques au fournisseur. Les utilisateurs peuvent spécifier une condition via le paramètre Query ou des ID d’image via le paramètre Images. Les paramètres s’appliquent aux services publiés à partir de jeux de données mosaïque.

Images

Le paramètre IMAGES interroge des rasters spécifiques selon leur ID d’objet dans le jeu de données mosaïque.

Requête : Affiche une image ayant pour ID d’objet 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

Requête : Affiche deux images ayant pour ID d’objet 3 et 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

Dans la version 10.3, le WMS de service d’imagerie prend en charge un nouveau paramètre Query. Le paramètre Query interroge les images en fonction d’une condition.

Requête : Affiche les images dont le nom de projet commence par « Cotton ». Dans l’exemple, projectName est un nom de champ personnalisé dans le jeu de données mosaïque :

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’

Remarque :

Le paramètre Query n’utilise que les requêtes standardisées par défaut. Pour plus d’informations, reportez-vous à la rubrique À propos des requêtes standardisées.