Skip To Content

WMS リクエストで layerDefs パラメーターを使用したフィーチャのフィルタリング

WMS 仕様には、GetMap リクエストにクエリ文字列または where 句を追加するフィルタリング メカニズムがありません。 SLD 内のルールを使用してフィルターを適用できますが、同時に SLD 内のシンボル部を作成する必要があります。

その代わりに、ArcGIS Server は、GetMap および GetFeatureInfo WMS オペレーションの両方に layerDefs というベンダー固有パラメーターを実装しています。 これにより、クライアントは、レイヤーの定義式を指定することにより、エクスポートされたマップに含まれる個別のレイヤーのフィーチャを簡単にフィルタリングできます。

layerDefs パラメーターは ArcGIS Server マップ サービスの layerDefs パラメーターから取得されます。 このパラメーターの詳細については、「ArcGIS REST API」のドキュメントをご参照ください。

リクエストでの layerDefs の使用

GetMap リクエストと GetFeatureInfo リクエストで layerDefs パラメーターを使用する方法の例を次に示します。

注意:

layerDefs パラメーター内のフィルター条件式は SLD や SLD_BODY に定義されているフィルター条件式と同時に使用できないことに注意してください。 両方が GetMap リクエストまたは GetFeatureInfo リクエストに存在すると、layerDefs の優先度が低くなるか、無視されます。

GetMap

人口が 100 万人以上の国だけを表示することで、国レイヤーをフィルタリングします: 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

人口が 100 万人以上で Amazon という名前の川を含む国の情報だけを取得することで、国レイヤーをフィルタリングします: 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 パラメーターを使用して画像 ID を指定することができます。 これらのパラメーターは、モザイク データセットから公開されたサービスに適用されます。

画像

IMAGES パラメーターは、オブジェクト ID によってモザイク データセット内の個々のラスターを検索します。

リクエスト: 次の例は、1 のオブジェクト ID を持つ 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 のオブジェクト ID を持つ 2 つの画像を表示します。

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」で始まるプロジェクト名を持つ画像を表示します。 この例では、projectName はモザイク データセット内のカスタム フィールド名です。

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 パラメーターは、デフォルトでは標準化されたクエリのみを受け取ります。 詳細については、「標準化されたクエリについて」をご参照ください。