Skip To Content

Filtern von Features mithilfe des Parameters "layerDefs" in WMS-Anforderungen

Die WMS-Spezifikation weist keinen Filtermechanismus auf, mit dem Sie in einer GetMap-Anforderung eine Abfragezeichenfolge oder eine WHERE-Klausel anhängen können. Zwar können die Filter mithilfe der Regeln im SLD angewendet werden, Sie müssen jedoch gleichzeitig den Symbolisierungsteil im SLD neu erstellen.

ArcGIS Server implementiert alternativ einen anbieterspezifischen Parameter namens "layerDefs" für die WMS-Operationen "GetMap" und "GetFeatureInfo". Dadurch erhält der Client eine einfachere Methode zum Filtern der Features von einzelnen Layern in der exportierten Karte, indem Definitionsausdrücke für diese Layer angegeben werden.

Der Parameter "layerDefs" wird vom Parameter "layerDefs" des ArcGIS Server-Kartenservice abgeleitet. Weitere Informationen zu diesem Parameter finden Sie in der ArcGIS REST API-Dokumentation.

Verwenden von "layerDefs" in einer Anforderung

Im Folgenden sind einige Beispiele zur Verwendung des Parameters "layerDefs" in den Anforderungen GetMap und GetFeatureInfo aufgeführt.

Hinweis:

Beachten Sie, dass sich die Filterausdrücke im Parameter "layerDefs" und in SLD bzw. SLD_BODY gegenseitig ausschließen. Wenn beide in einer GetMap- oder GetFeatureInfo-Anforderung vorhanden sind, hat "layerDefs" eine geringere Priorität und wird ignoriert.

GetMap

Filtern Sie den Land-Layer so, dass nur Länder mit einer Bevölkerung von mehr als 1 Million angezeigt werden: layerDefs={"country":"POP_CNTRY>100000000"}.

Beispielanforderung:

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

Filtern Sie den Land-Layer, indem Sie nur Informationen für Länder mit einer Bevölkerung von mehr als 1 Million abrufen, in denen zudem ein Fluss namens Amazonas liegt: layerDefs={"country":"POP_CNTRY>100000000","rivers":"NAME LIKE 'Amazon'"}.

Beispielanforderung:

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

Filtern von Bildern in WMS-Anforderungen

Ein auf einem Image-Service basierender WMS-Service unterstützt das Filtern von Bilder unter Verwendung von anbieterspezifischen Parametern. Benutzer können mit dem Parameter Query eine Bedingung oder mit dem Parameter Images Bild-IDs angeben. Die Parameter gelten für Services, die über Mosaik-Datasets veröffentlicht wurden.

Bilder

Der Parameter IMAGES fragt einzelne Raster nach deren Objekt-IDs im Mosaik-Dataset ab.

Anforderung: Zeigt ein Bild mit der Objekt-ID 1 an:

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

Anforderung: Zeigt zwei Bilder mit den Objekt-IDs 3 und 5 an:

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

ABFRAGE

In Version 10.3 unterstützt Image-Service-WMS einen neuen Query-Parameter. Der Parameter Query fragt Bilder basierend auf einer Bedingung ab.

Anforderung: Zeigt Bilder an, deren Projektname mit "Cotton" beginnt. In dem Beispiel ist "projectName" eine benutzerdefinierter Feldname im Mosaik-Dataset:

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'

Hinweis:

Der Parameter Query lässt standardmäßig nur standardisierte Abfragen zu. Weitere Informationen finden Sie unter Standardisierte Abfragen.