Re: [OSGeoJapan-discuss] OSGeo4W のMapServer tutorialの例題17のWFS表示
奈良崎 優
mnara-260116 @ kamakuranet.ne.jp
2012年 3月 31日 (土) 02:37:37 EDT
吉田様、皆様
アドバイスありがとうございます。奈良崎です。
OSGeo4Wでダウンロード出来るMapServerのWFSのチュートリアルですが、
例題16のMETADATAがあるMapfileは、次のURLのブラウザ入力をすると
QGISのWFSで表示できましたが、METADATAが無い例題17のMapFileは表示できませんでした。
http://localhost/cgi-bin/mapserver.exe?MAP=c:\OSGeo4W/apps/mapserver-tutorial/example16/example.map
ただ、表示できた例題16の地名が文字化けします。
WMSの時には、MapfileのENCODING "SHIFT_JIS"
が効いたようですが、WFSではダメなようです。
地名が文字化けするのなら、例え、OpenLayerで表示できたとしても
使えないように思うのですが。MapServer最新版なら、WFSでも文字化けしないのでしょうか?
あるいは、他の回避策があるのでしょうか?
(OpenLayerの方は、進捗ありません。)
QGISのMapserver Export Pluginで出来るMapfileを編集することにより、
WMSは使い物になりそうなことが分かりましたので、ハンズオンで「QGISユーザーのためのMap_Web配信入門」
とかやると受講する人はいないでしょうか?
以下は、例題16のMapfileです。
MAP
NAME "mapserver_tutorial_wfs_server"
IMAGETYPE PNG
EXTENT 139.72520 35.67139 139.78845 35.70731
SIZE 550 450
IMAGECOLOR 255 255 255
SHAPEPATH "../data"
FONTSET ../fonts/fonts.txt
UNITS dd
WEB
TEMPLATE 'example_template.html'
IMAGEPATH "C:\OSGeo4W/tmp/ms_tmp/"
IMAGEURL "/ms_tmp/"
MINSCALEDENOM 1000
MAXSCALEDENOM 70000
METADATA
"wfs_title" "MapServer Tutorial WFS Server"
"wfs_onlineresource"
"http://127.0.0.1/cgi-bin/mapserv.exe?MAP=C:\OSGeo4W/apps/mapserver-tutorial/example16/example.map"
"wfs_srs" "EPSG:4301 EPSG:4269 EPSG:4326"
"wfs_abstract" "This demonstration server shows how to setup a
MapServer .map file to serve data through the WFS standard."
END
END
PROJECTION
"init=epsg:4301"
END
LAYER
NAME "roads"
METADATA
"wfs_title" "Roads"
"wfs_srs" "EPSG:4301"
"gml_include_items" "NAMAE,SYUBETSU"
"gml_featureid" "ID"
END
DATA dourokukan
STATUS ON
TYPE LINE
MAXSCALEDENOM 50000
CLASS
NAME "roads"
STYLE
COLOR 187 187 127
END
END
PROJECTION
"init=epsg:4301"
END
DUMP TRUE
END
LAYER
NAME "administrative"
METADATA
"wfs_title" "Administrative"
"wfs_srs" "EPSG:4301"
"gml_include_items" "SYURUI"
"gml_featureid" "ID"
END
DATA gyouseikai
STATUS ON
TYPE LINE
CLASS
NAME "Administrative"
STYLE
COLOR 227 127 227
END
END
PROJECTION
"init=epsg:4301"
END
DUMP TRUE
END
LAYER
NAME "rail"
METADATA
"wfs_title" "Rail"
"wfs_srs" "EPSG:4301"
"gml_include_items" "NAMAE,SYUBETSU"
"gml_featureid" "ID"
END
DATA tetsudokukan
STATUS ON
TYPE LINE
CLASS
NAME "Rail"
STYLE
COLOR 128 128 128
END
END
PROJECTION
"init=epsg:4301"
END
DUMP TRUE
END
LAYER
NAME "rivers"
METADATA
"wfs_title" "Rivers"
"wfs_srs" "EPSG:4301"
"gml_include_items" "NAMAE,SYUBETSU"
"gml_featureid" "ID"
END
DATA kasenkukan
STATUS ON
TYPE LINE
CLASS
NAME "Rivers"
STYLE
COLOR 0 255 255
END
END
PROJECTION
"init=epsg:4301"
END
DUMP TRUE
END
LAYER
NAME "water"
METADATA
"wfs_title" "Water"
"wfs_srs" "EPSG:4301"
"gml_include_items" "SYURUI"
"gml_featureid" "ID"
END
DATA suiikikai
STATUS ON
TYPE LINE
CLASS
NAME "Water"
STYLE
COLOR 0 0 255
END
END
PROJECTION
"init=epsg:4301"
END
DUMP TRUE
END
LAYER
NAME "places"
METADATA
"wfs_title" "Place name"
"wfs_srs" "EPSG:4301"
"gml_include_items" "NAMAE,SYURUI"
"gml_featureid" "ID"
END
DATA chimei
STATUS ON
TYPE POINT
LABELITEM "NAMAE"
CLASS
NAME "Places"
STYLE
COLOR 10 100 100
END
LABEL
TYPE TRUETYPE
FONT pgothic
COLOR 220 20 20
SIZE 7
POSITION CL
PARTIALS FALSE
BUFFER 5
ENCODING "SHIFT_JIS"
END
END
PROJECTION
"init=epsg:4301"
END
DUMP TRUE
END
END
----- Original Message -----
From: "Daisuke YOSHIDA" <nro2dai @ gmail.com>
To: <osgeojapan-discuss @ lists.osgeo.org>
Sent: Friday, March 30, 2012 11:21 PM
Subject: Re: [OSGeoJapan-discuss] OSGeo4W のMapServer tutorialの例題17のWFS表示
> 楢崎様
>
> ブラウザでGetFeatureリクエストを試してみてはどうでしょうか?
> もしくは、QGISのWFSクライアント機能で試してみて下さい。
>
> OpenLayersのコードですが、
>
> {layers: 'mapserver_tutorial_wfs_client' のところ、
> 'mapserver_tutorial_wfs_client' から 'Roads' に変更してみたらどうでしょうか?
>
> あと、Mapfileのパスが、OpenLayersでのパスと微妙に違うのが気になりました。
> "wfs_onlineresource"
> "http://127.0.0.1/cgi-bin/mapserv.exe?MAP=C:\OSGeo4W/apps/mapserver-tutorial/example16.map"
>
>
>
>
> 2012年3月30日14:03 奈良崎 優 <mnara-260116 @ kamakuranet.ne.jp>:
>> 皆様
>> いつもお世話になっております。奈良崎です。
>> OSGeo4W のMapServer tutorialの例題17(帝塚山大学さんのMapServerのTutorialではなく、
>> その後のOSGeo4W でダウンロードできるTutorialです。)
>> は動きましたのでWFSサーバはOKとして、
>> これをOpenlayersで表示できないかと考えました。すなわち、WMSでは例題12のWMSサーバを
>> 例題14のOpenLayerで表示しているので、このWFS版を作ろうとしました。
>> しかし、OpenlayerのHTMLを起動したのですが、
>> 何も表示されません。HTMLのエラーを指摘いただけないでしょうか?
>> HTMLファイルの変更点は、
>> new OpenLayers.Layer.WMSのWMS−−>Vector
>> にしただけです。
>> 以下に、mapfileとhtmlファイルを示します。
>> よろしくお願いします。
>> (1)MAPファイル(例題17でcontinents Layer を削除しただけ)
>> MAP
>> NAME "mapserver_tutorial_wfs_client"
>> IMAGETYPE PNG
>> EXTENT 139.562947 35.524705 139.917821 35.817635
>> SIZE 550 450
>>
>> IMAGECOLOR 255 255 255
>> SHAPEPATH "../data"
>>
>> FONTSET ../fonts/fonts.txt
>>
>> UNITS dd
>>
>> WEB
>> TEMPLATE 'example_template.html'
>> IMAGEPATH "C:\OSGeo4W/tmp/ms_tmp/"
>> IMAGEURL "/ms_tmp/"
>> END
>>
>> PROJECTION
>> "init=epsg:4301"
>> END
>>
>>
>> LAYER
>> NAME "roads"
>> DATA dourokukan
>> STATUS OFF
>> TYPE LINE
>> MAXSCALEDENOM 50000
>> CLASS
>> NAME "roads"
>> STYLE
>> COLOR 187 187 127
>> END
>> END
>> END
>>
>> LAYER
>> NAME "administrative"
>> DATA gyouseikai
>> STATUS OFF
>> TYPE LINE
>> CLASS
>> NAME "Administrative"
>> STYLE
>> COLOR 227 127 227
>> END
>> END
>> END
>>
>> LAYER
>> NAME "rail"
>> DATA tetsudokukan
>> STATUS OFF
>> TYPE LINE
>> CLASS
>> NAME "Rail"
>> STYLE
>> COLOR 128 128 128
>> END
>> END
>> END
>>
>> LAYER
>> NAME "rivers"
>> DATA kasenkukan
>> STATUS OFF
>> TYPE LINE
>> CLASS
>> NAME "Rivers"
>> STYLE
>> COLOR 0 255 255
>> END
>> END
>> END
>>
>> LAYER
>> NAME "water"
>> DATA suiikikai
>> STATUS OFF
>> TYPE LINE
>> CLASS
>> NAME "water"
>> STYLE
>> COLOR 0 0 255
>> END
>> END
>> END
>>
>> END
>> (2)HTMLファイル
>> <html xmlns="http://www.w3.org/1999/xhtml">
>> <head>
>> <meta http-equiv="Content-Type" content="text/html;
>> charset=ISO-8859-1"/>
>> <link rel="stylesheet" href="style.css" type="text/css" />
>> <style type="text/css">
>> #map {
>> width: 800px;
>> height: 500px;
>> border: 1px solid black;
>> }
>> </style>
>> <script src="OpenLayers.js"></script>
>> <script type="text/javascript">
>> var lon = 139.7245;
>> var lat = 35.6816;
>> var zoom = 11;
>> var map, layer;
>>
>> function init(){
>> map = new OpenLayers.Map( 'map' );
>>
>>
>> localWMS = new OpenLayers.Layer.Vector( "Local WFS layers",
>>
>> "http://127.0.0.1/cgi-bin/mapserv.exe?MAP=C:/OSGeo4W/apps/mapserver-tutorial/example17/example.map",
>> {layers: 'mapserver_tutorial_wfs_client', transparent:
>> true},
>> {isBaseLayer: true} );
>> map.addLayer(localWMS);
>>
>> map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
>> map.addControl( new OpenLayers.Control.LayerSwitcher() );
>> }
>> </script>
>> </head>
>> <body onload="init()">
>> <h1 id="title">OpenLayers Example</h1>
>>
>> <div id="tags">
>> </div>
>> <p id="shortdesc">
>> Shows the basic use of OpenLayers with our local WMS layers and a
>> GeoGrid WMS layer.
>> </p>
>>
>> <div id="map" class="smallmap"></div>
>>
>> <div id="docs">
>> OpenLayers is a JavaScript file (OpenLayers.js) that can be
>> easily
>> included in any HTML file.<br>Click on the source
>> below to see the few lines required to add these 2 WMS servers
>> into
>> the map.<br>
>> <br>
>> <hr noshade width="40%" size="1" align="left">
>> <a
>> href="/mapserver-tutorial/example14/openlayers_source.html">-
>> (source) -</a>
>> <a href="/mapserver-tutorial/index.html">- (back) -</a>
>> </div>
>> </body>
>> </html>
>>
>>
>>
>>
>>
>> _______________________________________________
>> OSGeoJapan-discuss mailing list
>> OSGeoJapan-discuss @ lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>>
>
--------------------------------------------------------------------------------
> _______________________________________________
> OSGeoJapan-discuss mailing list
> OSGeoJapan-discuss @ lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>
OSGeoJapan-discuss メーリングリストの案内