y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

WMS(Web Mapping Server)が面白い

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レイヤとして呼び出せる