Re: [OSGeoJapan-discuss] OSGeo4W のMapServer tutorialの例題17のWFS表示
奈良崎 優
mnara-260116 @ kamakuranet.ne.jp
2012年 4月 6日 (金) 08:48:51 EDT
村上様、皆様
アドバイスありがとうございます。
例題16で、ブラウザから
http://localhost/cgi-bin/mapserver.exe?MAP=C:\OSGeo4W/apps/mapserver-tutorial/example16/example.map&MODE=map&LAYERS=all
を入力すると正しい文字が表示されました。
ENCODING SHIFT_JIS
が使われていました。
OpenLayerでの表示はまだできませんが、正しく表示される可能性はあると思っています。
長くなりますが、例題16のMapファイルを以下に示します。(METADATAもありました。)
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.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: "Megumi Murakami" <murakami @ orkney.co.jp>
To: <osgeojapan-discuss @ lists.osgeo.org>
Sent: Friday, April 06, 2012 7:27 PM
Subject: Re: [OSGeoJapan-discuss] OSGeo4W のMapServer tutorialの例題17のWFS表示
> 奈良崎さん
>
> 村上です。
>
> メールに気づかなかったもので、ご連絡が遅くなってしまい申し訳ありません。
>
> 先日ご説明した方法ですが、
> マップファイル中のWEBオブジェクトに
> METADATAオブジェクトがあるかと思いますが、
> その中に、
>
> "wfs_encoding" "SHIFT_JIS"
>
> という記述を一行足してみて下さい。
> (あるいは "gml_encoding" "SHIFT_JIS" かもしれません。。)
>
> これで、ブラウザからGetFeatureリクエストしたときは
> 文字化けしませんでした。
> OSGeo4Wを使ったわけでなく、また、QGISでの表示が確認できていないので、
> これだけでうまくいくかわかりませんが。
>
>
> (12/04/02 22:49), Daisuke YOSHIDA wrote:
>> 奈良崎様
>>
>> 吉田です。
>>
>> 手元にテスト環境がないので、詳しく調べられませんが、
>> MapfileでENCODING "SHIFT_JIS"を指定し、
>> WMSではOKで、WFSでは文字化けしたというのは、
>> クライアントはQGISを使用したのでしょうか?
>> ちなみに、WMSでは属性情報までは対応していないと思うのですが、
>>
>> また、ブラウザ上のGetFeatureリクエストでも文字化けを起こしますでしょうか?
>>
>>
>>
>>
>> 2012年3月31日15:37 奈良崎 優<mnara-260116 @ kamakuranet.ne.jp>:
>>> 吉田様、皆様
>>> アドバイスありがとうございます。奈良崎です。
>>> 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 mailing list
>>> OSGeoJapan-discuss @ lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>
> --
> ____________________________________________________
>
> 村上恵 murakami @ orkney.co.jp
>
> 株式会社オークニー ジオソリューション事業部
> 〒220-6212
> 横浜市西区みなとみらい2-3-5 クイーンズタワーC棟12階
> TEL:045-228-3320 FAX:045-228-3321
> ____________________________________________________
>
--------------------------------------------------------------------------------
> _______________________________________________
> OSGeoJapan-discuss mailing list
> OSGeoJapan-discuss @ lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>
OSGeoJapan-discuss メーリングリストの案内