国土数値情報(東京都のデータ)と基盤地図情報(あきる野市)を同じ地図上に表示しました。
単位が、度数(degree)とメートル(meter)のデータです。
最初に、国土数値情報(東京都のデータ)の準備をするため、「OpenLayers 10a-d unitsがddとmeterのレイヤ」を参考に、nippon_nlni_tokyo_pgis.map に WMS サーバの設定をします。
1 OpenLayers では地図を表示するのに、マップファイルに MAP オブジェクトの PROJECTION オブジェクトが必要です。
epsg:4326(PROJECTION オブジェクトでは epsg を小文字で設定)は、X/Yの値で扱われるれる緯度と経度で地図を説明する一般的な識別子です。
これは、MapServer と OpenLayers のデフォルトの投影法である正距円筒図法ですが、必ず設定します。
2 WMS サーバ機能を設定するのに、WEB オブジェクトの METADATA オブジェクトに、 "wms_title" と "wms_srs", "wms_enable_request"(以上必須), "wms_onlineresource"(推奨 GetCapabilities のために) を設定します。
「wms_enable_request」は、GetCapabilities, GetMap, GetFeatureInfo and GetLegendGraphic のリクエストを許可します。
"wms_srs" に、基盤地図情報のに合わせて "EPSG:2451" も設定します。
これによって、"wms_srs" の識別子が WMS を利用できるすべてのレイヤに設定されます。
3 レイヤを WMS で利用できるように、同じように、METADATA オブジェクトに、 "wms_title" を設定します。
レイヤを別の投影法で利用したいときは、個別に "wms_srs" を設定します。
MAP NAME nippon_nlni_tokyo_pgis_map STATUS ON SIZE 600 300 EXTENT 138.85 35.4 140 35.975 # 諸島部を除いた範囲 UNITS DD IMAGECOLOR 255 255 255 # IMAGETYPE PNG FONTSET "fonts.txt" PROJECTION # 投影法 (OpenLayers のため追加)<-1 "init=epsg:4326" END
WEB IMAGEPATH "/home/user/mapsite/ms_tmp/" IMAGEURL "/mapsite/ms_tmp/" METADATA "wms_title" "Nippon NLNI Tokyo Map WMS Server" # WMS サーバ設定<-2 "wms_srs" "EPSG:2451 EPSG:4326" # 投影法<-2 "wms_onlineresource" "http://localhost/cgi-bin/mapserv?map=/home/user/mapfile/nippon_bmi_akiruno_pgis.map&" # <-2 "wms_enable_request" "*" # <-2 END END
--- LAYER NAME tokyo_kuiki --- METADATA "wms_title" "Tokyo Kuiki Map WMS Layer" # <-3 END --- LAYER NAME tokyo_pf --- METADATA "wms_title" "Tokyo Public Facilities Map WMS Layer" # <-3 END ---
GetCapabilities で WMS の情報を取得できます。
警告(<!-- WARNING:...)がありますが、今回は地図の表示に影響ありません。
wget -O nippon_nlni_tokyo_pgis.xml "http://localhost/cgi-bin/mapserv?map=/home/user/mapfile/tokyo_pf_pgis.map&service=WMS&version=1.1.1&request=GetCapabilities"
user@debian:~/xml$ vim nippon_nlni_tokyo_pgis_111.xml
<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
<!DOCTYPE WMT_MS_Capabilities SYSTEM "http://schemas.opengis.net/wms/1.1.1/WMS_MS_Capabilities.dtd"
[
<!ELEMENT VendorSpecificCapabilities EMPTY>
]> <!-- end of DOCTYPE declaration -->
<WMT_MS_Capabilities version="1.1.1">
<!-- MapServer version 6.0.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=CAIRO SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE -->
ここには、MapServer がサポートする機能が出力されています。
WMS がサポートされています。
---
<Layer>
<Name>nippon_nlni_tokyo_pgis_map</Name>
<Title>Nioopn NLNI Tokyo Map WMS Server</Title>
<Abstract>nippon_nlni_tokyo_pgis_map</Abstract>
<SRS>EPSG:4326</SRS>
<SRS>EPSG:2451</SRS>
<LatLonBoundingBox minx="138.85" miny="35.4" maxx="140" maxy="35.975" />
<BoundingBox SRS="EPSG:4326"
minx="138.85" miny="35.4" maxx="140" maxy="35.975" />
<Layer queryable="0" opaque="0" cascaded="0">
<Name>tokyo_kuiki</Name>
<Title>Tokyo Kuiki Map WMS Layer</Title>
<SRS>EPSG:4326</SRS>
<LatLonBoundingBox minx="-2.5e+07" miny="-2.5e+07" maxx="2.5e+07" maxy="2.5e+07" />
<BoundingBox SRS="EPSG:4326"
minx="-2.5e+07" miny="-2.5e+07" maxx="2.5e+07" maxy="2.5e+07" />
<Style>
<Name>default</Name>
<Title>default</Title>
<LegendURL width="139" height="23">
<Format>image/png</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost/cgi-bin/mapserv?map=/home/user/mapfile/nippon_nlni_tokyo_pgis.map&version=1.1.1&service=WMS&request=GetLegendGraphic&layer=tokyo_kuiki&format=image/png&STYLE=default"/>
</LegendURL>
</Style>
<ScaleHint min="0.249451424214819" max="498.902848429637" />
</Layer>
---
<Name>tokyo_pf</Name>
<!-- WARNING: Mandatory metadata '..._GROUP_TITLE' was missing in this context. -->
<Title>tokyo_pf</Title>
<Abstract>tokyo_pf</Abstract>
<Style>
<Name>default</Name>
<Title>default</Title>
<LegendURL width="87" height="23">
<Format>image/png; mode=24bit</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost/cgi-bin/mapserv?map=/home/user/mapfile/nippon_nlni_tokyo_pgis.map&version=1.1.1&service=WMS&request=GetLegendGraphic&layer=tokyo_pf&format=image/png; mode=24bit&STYLE=default"/>
</LegendURL>
</Style>
<Layer queryable="0" opaque="0" cascaded="0">
<Name>tokyo_pf</Name>
<Title>Tokyo Public Facilities Map WMS Layer</Title>
<SRS>EPSG:4326</SRS>
<LatLonBoundingBox minx="-2.5e+07" miny="-2.5e+07" maxx="2.5e+07" maxy="2.5e+07" />
<BoundingBox SRS="EPSG:4326"
minx="-2.5e+07" miny="-2.5e+07" maxx="2.5e+07" maxy="2.5e+07" />
<Style>
<Name>default</Name>
<Title>default</Title>
<LegendURL width="87" height="23">
<Format>image/png</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost/cgi-bin/mapserv?map=/home/user/mapfile/nippon_nlni_tokyo_pgis.map&version=1.1.1&service=WMS&request=GetLegendGraphic&layer=tokyo_pf&format=image/png&STYLE=default"/>
</LegendURL>
</Style>
<ScaleHint min="0.249451424214819" max="12.4725712107409" />
</Layer>
</Layer>
---
GetMap リクエストで画像を表示してみます。
Webブラウザのアドレサバーに次のように入力してEnterキーを押します。
http://localhost/cgi-bin/mapserv?map=/home/user/mapfile/nippon_nlni_tokyo_pgis.map&service=WMS&version=1.1.1&request=GetMap&layers=tokyo_kuiki&srs=EPSG:4326&bbox=138.85,35.4,140,35.975&format=image/png&width=600&height=300
///// 補足 /////
次のアドレスを Web ブラウザのアドレスバーに入力して Enter キーを押すと、最初、地図が表示されませんでした。
http://localhost/cgi-bin/mapserv?map=/home/user/mapfile/nippon_nlni_tokyo_pgis.map&service=WMS&version=1.1.1&request=GetMap&layers=tokyo_kuiki
「mapserv」ファイルが作成されます。そこには、次のように記述されています。
<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?> <!DOCTYPE ServiceExceptionReport SYSTEM "http://schemas.opengis.net/wms/1.1.1/exception_1_1_1.dtd"> <ServiceExceptionReport version="1.1.1"> <ServiceException> msWMSDispatch(): WMS server error. WMS request not enabled. Check wms/ows_enable_request settings. </ServiceException> </ServiceExceptionReport>
nippon_nlni_tokyo_pgis.map の WEB オブジェクトに次のように追加しました。
--- WEB IMAGEPATH "/home/user/mapsite/ms_tmp/" IMAGEURL "/mapsite/ms_tmp/" METADATA "wms_title" "Nippon NLNI Tokyo Map WMS Server" "wms_srs" "EPSG:2451 EPSG:4326" "wms_onlineresource" "http://localhost/cgi-bin/mapserv?map=/home/user/mapfile/nippon_bmi_akiruno_pgis.map" "wms_enable_request" "*" #追加 END END ---
地図を表示すると次のようにメッセージが作成されるので、アドレスを修正していきました。
msWMSLoadGetMapParams(): WMS server error. Missing required parameter SRS
-> srs=epsg:4326
msWMSLoadGetMapParams(): WMS server error. Missing required parameter BBOX
-> bbox=-138.85,35.4,140,35.975
msWMSLoadGetMapParams(): WMS server error. Missing required parameter FORMAT
-> format=image/png
msWMSLoadGetMapParams(): WMS server error. Missing required parameter WIDTH
-> width=600
msWMSLoadGetMapParams(): WMS server error. Missing required parameter HEIGHT -> height=300
///// ここまで /////
0 件のコメント:
コメントを投稿