[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>&nbsp;&nbsp;
>>>>           <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 メーリングリストの案内