Re: [OSGeoJapan-discuss] OSGeo4W のMapServer tutorialの例題17のWFS表示

Daisuke YOSHIDA nro2dai @ gmail.com
2012年 4月 2日 (月) 09:49:57 EDT


奈良崎様

吉田です。

手元にテスト環境がないので、詳しく調べられませんが、
MapfileでENCODING "SHIFT_JIS"を指定し、
WMSではOKで、WFSでは文字化けしたというのは、
クライアントはQGISを使用したのでしょうか?
ちなみに、WMSでは属性情報までは対応していないと思うのですが、

また、ブラウザ上のGetFeatureリクエストでも文字化けを起こしますでしょうか?


2012年3月31日15:37 奈良崎 優 <mnara-260116 at 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 at gmail.com>
> To: <osgeojapan-discuss at 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 at 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 at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>>>
>>
>
>
> --------------------------------------------------------------------------------
>
>
>
>> _______________________________________________
>> OSGeoJapan-discuss mailing list
>> OSGeoJapan-discuss at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>>
>


OSGeoJapan-discuss メーリングリストの案内