[OSGeoJapan-discuss] OSGeo4W のMapServer tutorialの例題17のWFS表示
Megumi Murakami
murakami @ orkney.co.jp
2012年 4月 6日 (金) 06:27:58 EDT
奈良崎さん
村上です。
メールに気づかなかったもので、ご連絡が遅くなってしまい申し訳ありません。
先日ご説明した方法ですが、
マップファイル中の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 メーリングリストの案内