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>&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 mailing list
> OSGeoJapan-discuss @ lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>



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