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

奈良崎 優 mnara-260116 @ kamakuranet.ne.jp
2012年 3月 31日 (土) 02:37:37 EDT


吉田様、皆様
アドバイスありがとうございます。奈良崎です。
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 メーリングリストの案内