2009年9月24日木曜日

OpenLayers で東京都の地図表示 5a OpenLayers に東京都の公共施設を追加1

「OpenLayers 10a-d unitsがddとmeterのレイヤ」を参考に、
tokyo_pf_pgis.map に WMS サーバの設定をします。

1 OpenLayers では地図を表示するのに、マップファイルに MAP オブジェクトの PROJECTION オブジェクトが必要です。
epsg:4326(PROJECTION オブジェクトでは epsg を小文字で設定)は、X/Yの値で扱われるれる緯度と経度で地図を説明する一般的な識別子です。
これは、MapServer と OpenLayers のデフォルトの投影法である正距円筒図法ですが、必ず設定します。

2 WMS サーバ機能を設定するのに、WEB オブジェクトの METADATA オブジェクトに、 "wms_title" と "wms_srs" を設定します。
"wms_srs" に、基盤地図情報のに合わせて "EPSG:2456" も設定します。
これによって、"wms_srs" の識別子が WMS を利用できるすべてのレイヤに設定されます。
3 レイヤを WMS で利用できるように、同じように、METADATA オブジェクトに、 "wms_title" を設定します。
レイヤを別の投影法で利用したいときは、個別に "wms_srs" を設定します。
MAP
 NAME tokyo_pf_pgis_map
---
 PROJECTION         # 投影法 (OpenLayers のため追加)<-1
   "init=epsg:4326" #
 END                #

 WEB
   IMAGEPATH "/home/nob61/ka-map/htdocs/tmp/kacache/"
   IMAGEURL "/ka-map/tmp/kacache/"
   METADATA
     "wms_title" "Tokyo mlit Map WMS Server" # WMS サーバ設定<-2
     "wms_srs" "EPSG:2456 EPSG:4326"         #
   END
 END
---
 LAYER
  NAME gyoseikai
---
  METADATA
    "group_title" "行政界"
    "queryable" "true"
    "searchfield" "cn2"
    "fields" "con:郡政令,cn2:市区町村"
    "wms_title" "Gyoseikai Tokyo mlit Map WMS Layer" # 追加<-3
  END
---
 LAYER
  NAME pf_tokyo
---
  METADATA
   "group_title" "公共施設"
   "searchfield" "na0"
   "fields" "na0:公共施設,ads:住所"
   "wms_title" "Public Facilities Tokyo mlit Map WMS Layer" # 追加<-3
#   "wms_srs" "EPSG:2456 EPSG:4326"                         #
  END
---

GetCapabilities で WMS の情報を取得できます。
警告(<!-- WARNING:...)がありますが、今回は地図の表示に影響ありません。

wget -O tokyo_pf_pgis.xml "http://localhost/cgi-bin/mapserv?map=/home/nob61/mapfile/tokyo_pf_pgis.map&service=WMS&version=1.1.1&request=GetCapabilities"

nob61@debian:~/xml$ vim tokyo_pf_pgis.xml
---
  <Layer>
    <Name>tokyo_pf_pgis_map</Name>
    <Title>Tokyo mlit Map WMS Server</Title>
    <SRS>EPSG:2456</SRS>
    <SRS>EPSG:4326</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="1" opaque="0" cascaded="0">
        <Name>gyoseikai</Name>
        <Title>Gyoseikai Tokyo mlit Map WMS Layer</Title>
<!-- WARNING: Mandatory mapfile parameter '(at least one of) MAP.PROJECTION, LAYER.PROJECTION or wms_srs metadata' was missing in this context. -->
        <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="20" height="10">
             <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/nob61/mapfile/tokyo_pf_pgis.map&version=1.1.1&service=WMS&request=GetLegendGraphic&layer=gyoseikai&format=image/png"/>
          </LegendURL>
        </Style>
    </Layer>
    <Layer>

---
    <Layer>
      <Name>pf_tokyo</Name>
<!-- WARNING: Mandatory metadata '..._GROUP_TITLE' was missing in this context. -->
      <Title>pf_tokyo</Title>
      <Abstract>pf_tokyo</Abstract>
      <Layer queryable="1" opaque="0" cascaded="0">
        <Name>pf_tokyo</Name>
        <Title>Public Facilities Tokyo mlit Map WMS Layer</Title>
<!-- WARNING: Mandatory mapfile parameter '(at least one of) MAP.PROJECTION, LAYER.PROJECTION or wms_srs metadata' was missing in this context. -->
        <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="20" height="10">
             <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/nob61/mapfile/tokyo_pf_pgis.map&version=1.1.1&service=WMS&request=GetLegendGraphic&layer=pf_tokyo&format=image/png"/>
          </LegendURL>
        </Style>
        <ScaleHint min="0" max="124.725712107409" />
      </Layer>
    </Layer>
  </Layer>
</Capability>
</WMT_MS_Capabilities>

0 件のコメント: