WFS を利用して地図に属性を表示します。
WFS(Web Feature Service)は、座標や属性など、実際の地物のデータを配信します。
1 WFS サーバ機能を設定するのに、WEB オブジェクトの METADATA オブジェクトに、 "wfs_title"(必須)と "wfs_srs", "wfs_enable_request", "wfs_onlineresource"(以上推奨) を設定します。
"wfs_enable_request" は、GetCapabilities, GetFeature and DescribeFeatureType のリクエストを許可します。
"wfs_srs" に、基盤地図情報のに合わせて "EPSG:2451" も設定します。
これによって、"wfs_srs" の識別子が WFS を利用できるすべてのレイヤに設定されます。
2 レイヤを WFS で利用できるように、同じように、METADATA オブジェクトに、 "wfs_title"、"wfs_srs"、"gml_featureid"、"gml_include_items" を設定します。
"gml_featureid" は、WFS データの属性の中でユニーク(唯一)なものを設定します。
"gml_include_items" は、配信する属性を決められます。設定は必須となっていませんが、しておいたほうがいいようです。
user@debian7-vmw:~/mapfile$ vim nippon_nlni_tokyo_pgis.map
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 のため追加) "init=epsg:4326" END
WEB IMAGEPATH "/home/user/mapsite/ms_tmp/" IMAGEURL "/mapsite/ms_tmp/" METADATA "wms_title" "Nioopn NLNI Tokyo Map WMS Server" "wms_onlineresource" "http://192.168.1.200/cgi-bin/mapserv?map=/home/user/mapfile/nippon_nlni_tokyo_pgis.map&" "wms_srs" "EPSG 2451 EPSG:4326" "wms_enable_request" "*" "wfs_title" "Nippon NLNI Tokyo Map WFS Server" # <-1 ここから追加 "wfs_onlineresource" "http://192.168.1.200/cgi-bin/mapserv?map=/home/user/mapfile/nippon_nlni_tokyo_pgis.map&" "wfs_srs" "EPSG:4326" "wfs_enable_request" "*" END END
--- LAYER NAME tokyo_kuiki TYPE POLYGON STATUS ON # DUMP TRUE (ver.6より非推奨)
--- METADATA "wms_title" "Tokyo Kuiki Map WMS Layer" "wms_srs" "EPSG:2451 EPSG:4326" "wfs_title" "Tokyo Kuiki Map WFS Layer" # <-2 ここから追加 "wfs_srs" "EPSG:4326" "gml_featureid" "gid" "gml_include_items" "all" END
--- LAYER NAME tokyo_pf GROUP tokyo_pf TYPE POINT STATUS ON
--- METADATA "wms_title" "Tokyo Public Facilities Map WMS Layer" "wms_srs" "EPSG:2451 EPSG:4326" "wfs_title" "Tokyo Public Facilities Map WFS Layer" # <-2 ここから追加 "wfs_srs" "EPSG:4326" "gml_featureid" "gid" "gml_include_items" "all" END ---
nippon_nlni_tokyo_pgis.map の WFS GetCapabilities の出力結果。
user@debian7-vmw:~/ドキュメント$ wget -O nlni_tokyo_wfs_gc.xml "http://localhost/cgi-bin/mapserv?map=/home/user/mapfile/nippon_nlni_tokyo_pgis.map&service=wfs&version=1.0.0&request=GetCapabilities"
user@debian7-vmw:~/ドキュメント$ vim nlni_tokyo_wfs_gc.xml
<?xml version='1.0' encoding="ISO-8859-1" ?>
<WFS_Capabilities
version="1.0.0"
updateSequence="0"
xmlns="http://www.opengis.net/wfs"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-capabilities.xsd">
<!-- 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 -->
<Service>
<Name>MapServer WFS</Name>
<Title>Nippon NLNI Tokyo Map WFS Server</Title>
<OnlineResource>http://192.168.1.200/cgi-bin/mapserv?map=/home/user/mapfile/nippon_nlni_tokyo_pgis.map&</OnlineResource>
</Service>
---
<FeatureTypeList>
<Operations>
<Query/>
</Operations>
<FeatureType>
<Name>tokyo_kuiki</Name>
<Title>Tokyo Kuiki Map WMS Layer</Title>
<SRS>EPSG:4326</SRS>
<LatLongBoundingBox minx="-2.5e+07" miny="-2.5e+07" maxx="2.5e+07" maxy="2.5e+07" />
</FeatureType>
<FeatureType>
<Name>tokyo_pf</Name>
<Title>Tokyo Public Facilities Map WFS Layer</Title>
<SRS>EPSG:4326</SRS>
<LatLongBoundingBox minx="-2.5e+07" miny="-2.5e+07" maxx="2.5e+07" maxy="2.5e+07" />
</FeatureType>
---
1 「<WFS_Capabilities...」WFS Capabiities の名前空間
2 「<!-- MapServer version 6.0.1...」MapServer の動作している機能
3 「<Service>...」WFS の設定
4 「<FeatureTypeList>...」各レイヤの設定
nippon_nlni_tokyo_pgis.map の WFS GetFeature の出力結果。
user@debian7-vmw:~/ドキュメント$ wget -O nlni_tokyo_pf_wfs_gf.xml "http://localhost/cgi-bin/mapserv?map=/home/user/mapfile/nippon_nlni_tokyo_pgis.map&service=wfs&version=1.0.0&request=GetFeature&TYPENAME=tokyo_pf"
<?xml version='1.0' encoding="ISO-8859-1" ?>
<wfs:FeatureCollection
xmlns:ms="http://mapserver.gis.umn.edu/mapserver"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd
http://mapserver.gis.umn.edu/mapserver
http://192.168.1.200/cgi-bin/mapserv?map=/home/user/mapfile/nippon_nlni_tokyo_pgis.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=DescribeFeatureType&TYPENAME=tokyo_pf&OUTPUTFORMAT=XMLSCHEMA">
<gml:boundedBy>
<gml:Box srsName="EPSG:4326">
<gml:coordinates>139.015694,26.640098 142.203778,35.841866</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<gml:featureMember>
<ms:tokyo_pf fid="tokyo_pf.1">
<gml:boundedBy>
<gml:Box srsName="EPSG:4326">
<gml:coordinates>139.734103,35.681014 139.734103,35.681014</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<ms:msGeometry>
<gml:Point srsName="EPSG:4326">
<gml:coordinates>139.734103,35.681014</gml:coordinates>
</gml:Point>
</ms:msGeometry>
<ms:gid>1</ms:gid>
<ms:p02_001>13101</ms:p02_001>
<ms:p02_002>3</ms:p02_002>
<ms:p02_003>03001</ms:p02_003>
<ms:p02_004>ニューオータニ美術館</ms:p02_004>
<ms:p02_005>紀尾井町4-1</ms:p02_005>
<ms:p02_006>4</ms:p02_006>
<ms:p02_007>数値地図画像</ms:p02_007>
</ms:tokyo_pf>
</gml:featureMember>
---
1 「<wfs:FeatureCollection...」WFS FeatureCollection の名前空間
2 以下、地物のデータ
0 件のコメント:
コメントを投稿