MapServerのWMS機能を確認した。
mapファイルを若干編集し、WMS用の設定を追加するだけでOKだった。
これで、ボリュームの多い背景地図をサーバに持たせておいて、ポイント情報などの軽いデータだけをデスクトップクライアントとかWebクライアントでハンドリングするようなことが出来る。
■mapファイルの記述追加
MAPオブジェクトの任意の場所に
WEB
METADATA
"wms_title" "rastermap"
"wms_onlineresource" "http://サーバアドレス/cgi-bin/wms?map=/data/sample.map&"
"wms_srs""EPSG:4612 EPSG:2448 EPSG:4326 EPSG:54004"
END
END
LAYERオブジェクトの中に
METADATA
"IMAGEFORMAT" "AGGA"
"DESCRIPTION" "rastermap"
"wms_title" "rastermap"
"wms_srs""EPSG:4612 EPSG:2448 EPSG:4326 EPSG:54004"
END
呼び出し側からは、rastermapというレイヤ名で呼び出せる。
■cgi
WMSで呼び出すcgiは、簡単なシェルスクリプトで、/var/www/cgi-bin/wmsなんていうファイルで保存しておき
こんな感じで書く。
#!/bin/sh
export MS_MAPFILE=/data/sample.map
/var/www/cgi-bin/mapserv-i18n
■WMSの呼び方
あとは、QuantumGISとかから
http://サーバアドレス/cgi-bin/wms?map=/data/sample.map&service=WMS&version=1.1.1&request=GetCapabilities
なんていうURLを指定してWMSレイヤとして呼び出せる