2. WFSクライアントとしてのマップファイルの設定

2.1 一時ファイルの格納

IMAGEPATHを設定しなければならない。 Mapserverはこのディレクトリをリモートサーバからダウンロードした一時ファイルの格納に使用する。

MAP
  ...
  WEB
    IMAGEPATH "/tmp/ms_tmp/"
    IMAGEURL ...
  END
  ...
END

2.2 WFS レイヤ

WFSのレイヤは通常のマップファイルのレイヤである。 CLASSオブジェクトが使用でき、表現などについても同様である。

Mapserver4.4においては、WFSクライアントとしてのレイヤを定義するための推奨される方法は、CONNECTIONパラメータとレイヤのMETADATAを組み合わせた者である。マップファイルでの必要なパラメータは以下のように定義されている:

  • CONNECTIONTYPE: "wfs"でなければならない。
  • CONNECTION: WFSサーバのURL。例 http://www2.dmsolutions.ca/cgi-bin/mswfs_gmap? もしGetCapabilities?リクエストで必要ならばWFSサーバ上のマップファイルへのパスが必要となる。例えば以下のサーバへのCONNECTIONオブジェクトにおいてMAPパラメータを特定しなければならない場合など:

http://map.ns.ec.gc.ca/MapServer/mapserv.exe?MAP=/mapserver/services/envdat/config.map
&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetCapabilities

  • METADATA: LAYERオブジェクトは以下のパラメータを有するMETADATAオブジェクトを含む必要がある:
    • wfs_connectiontimeout (オプション): リモートのWFSレイヤをロードするために待つ最大の時間を秒単位で設定する(デフォルトでは30秒である)。このメタデータはレイヤレベルで追加することができ、そのレイヤのみに影響を与える。もしくはマップレベル(Webオブジェクトにおいて)追加した場合、全てのレイヤに影響を与える。レイヤレベルでのwfs_connectiontimeoutはマップレベルのものより優先される。
    • wfs_filter (オプション): これはGetFeature?リクエストにおけるフィルタエンコーディングパラメータを含むことができる(フィルタリングの詳細についてはFilter Encoding HOWTO?を参照のこと)。wfs_filterの内容は妥当なフィルタエンコーディング要素である。
...
       METADATA
         "wfs_filter"   "<PropertyIsGreaterThan?><PropertyName?>POP_RANGE</PropertyName?><Literal>4
                         </Literal></PropertyIsGreaterThan?>"
       END
       ...

* wfs_latlongboundingbox (オプション): このレイヤの地理座標系によるバウンディングボックスで、"最小経度 最小緯度最大経度最大緯度"という形式で記述される。もしこれが設定されている場合、Mapserverは地図のビューがバウンディングボックスと重なっている場合のみリクエストを発行する。通常はにサーバのcapabilities出力から取得できる。
* wfs_maxfeatures (オプション): 返されるGMLの持つ地物の数の制限。
* wfs_request_method (オプション): PostリクエストをサポートしていないWFSサーバへGetリクエストを用いる場合に、"GET"を設定できる。MapserverでのデフォルトはPostである。

...
METADATA
  "wfs_filter"   "GET"
END
...

* wfs_typename (必須): GetCapabilities?において探すレイヤの<Name>(GetCapabilities?リクエストの例:
http://www2.dmsolutions.ca/cgi-bin/mswfs_gmap?SERVICE=WFS&VERSION=1.0.0&REQUEST=getcapabilities)
* wfs_version (必須): WFSのバージョン、現在は"1.0.0"。

注記
上記のメタデータはそれぞれ"wfs_*"に代わり"ows_*"という形でも参照できる。 Mapserverは"wfs_*"メタデータを最初に探し、見付からなければ"ows_*"に一致するものを探す。 "ows_*"メタデータはほとんどどこでも複数のOGCインターフェースによって共有される共通のメタデータとして用いられるので、複数のOGCインターフェースをサポートしているマップファイルでの重複する項目を減らすために用いられる。

2.3 WFSレイヤサンプル

LAYER
  NAME park
  TYPE POLYGON
  STATUS ON
  CONNECTIONTYPE WFS
  CONNECTION "http://www2.dmsolutions.ca/cgi-bin/mswfs_gmap?"
  METADATA
    "wfs_typename"          "park"
    "wfs_version"           "1.0.0"
    "wfs_request_method"    "GET"
    "wfs_connectiontimeout" "60"
    "wfs_maxfeatures"       "1"
  END
  PROJECTION
    "init=epsg:42304"
  END
  CLASS
    NAME "Parks"
    STYLE
      COLOR 200 255 0
      OUTLINECOLOR 120 120 120
    END
  END
END # Layer

2.4 Connection - 非推奨

Mapserver4.4においては、CONNECTIONパラメータの内部において全ての接続情報を指定する方法は非推奨となった。推奨される方法は上で述べたものである。もしメタデータが提供されていなければ、VERSION、SERVICE、TYPENAMEについてはCONNECTIONから以下のような形で取得される。

CONNECTION    "http://www2.dmsolutions.ca/cgi-bin/mswfs_gmap?SERVICE=WFS&VERSION=1.0.0&TYPENAME=park"
Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License