Skip To Content

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

この ArcGIS 10.8 ドキュメントはアーカイブされており、今後更新されません。 コンテンツとリンクが古い場合があります。 最新のドキュメントをご参照ください

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

必要に応じて、ArcGIS Server では、GetMap オペレーションと GetFeatureInfo WMS オペレーションの両方でベンダー固有のパラメーター layerDefs を実装できます。これは、クライアントにとって、エクスポートしたマップの個々のレイヤーの定義式を指定することによりこれらのレイヤーのフィーチャをフィルターすることができる軽量なやり方です。

layerDefs パラメーターは、ArcGIS Server マップ サービスの layerDefs パラメーターから派生しています。このパラメーターの詳細については、ArcGIS Server 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 万人を超える人口を持ち、アマゾンという名前の川がある国の情報のみを取得して国レイヤーをフィルターします。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'"}


このトピックの内容
  1. リクエストでの layerDefs の使用