2013年12月17日火曜日

31 - GML データの読込 1 - Point の表示

31-1 GML(Geography Markup Language)

OGC(Open Geospatial Consortium)の

Geography Markup Language ページ
http://www.opengeospatial.org/standards/gml

に GML の説明があります。
GML は OGC の規格で、地理的な特徴を表現するためのXML文法です。データは、定義された構造のまま、インターネットで交換できます。構成は、データベース構造(スキーマ)と実際のデータ(インスタンス)の2つの部分からなってます。GML ドキュメントは GML スキーマを使用して記述されています。これにより、点、線、多角形を含んでいる一般的な地理データセットを記述することができます。コミュニティ固有の拡張機能が実装されることもあります。

31-2 GML レイヤの例(GML Layer Example)
examples フォルダにある「GML Layer Example(gml-layer.html)」(または「Vector Behavior Example(behavior-fixed-http-gml.html)」を参考に GML 不ファイルを読み込んでレイヤを表示します。
最初に、HTML ファイルを準備します。

a メニューの「ファイル」->「開く」をクリックします。







b 「ファイルを開く」ウィンドウで、「OpenLayers-2.13.1」->「ol009-nippon_bmi_akiruno_pgis.html」をクリックして選択し、「OK」ボタンをクリックします。





c メニューの「ファイル」->「新規」 -> 「その他」をクリックします。




d 「ウィザードを選択」ウィンドウで、「Web」(複数あるときは展開して探してください。)->「HTMLファイル」をクリックして選択し、「次へ」ボタンをクリックします。






e 「HTML」ウィンドウで「openlayersTokyoproj」をクリックして選択し、「ファイル名」を「ol012-nippon_bmi_akiruno_pgis.html」と入力し、「完了」ボタンをクリックします。







f 「ol009-nippon_bmi_akiruno_pgis.html」の内容をコピーして「ol012-nippon_bmi_akiruno_pgis.html」ファイルに貼り付けます。

g メニューの「ファイル」->「開く」をクリックします。







h 「ファイルを開く」ウィンドウで、「OpenLayers-2.13.1」->「examples」->「gml-layer.html」をクリックして選択し、「OK」ボタンをクリックします。






i 「gml-layer.html」のjavascript の一部をコピーして「ol012-nippon_bmi_akiruno_pgis.html」に貼り付けて、次のように修正します。
(29-2 で追加したところは削除します。)

---
 map.addLayers([layer0, layer3, layer1, layer2, layer4]);


 // ここから追加
 map.addLayer(new OpenLayers.Layer.Vector("GML", {
  protocol: new OpenLayers.Protocol.HTTP({
   url: "gml/polygon.xml", // ここを後で修正
   format: new OpenLayers.Format.GML()
  }),
  projection: map.displayProjection, // 追加
  strategies: [new OpenLayers.Strategy.Fixed()]
 }));
 // ここまで


 map.addControl(new OpenLayers.Control.LayerSwitcher());
 map.addControl(new OpenLayers.Control.MousePosition());
 map.zoomToMaxExtent();
}
---


31-3 GML ファイルの作成 Point
examples フォルダの gml フォルダにある gml ファイルを参考にファイルを準備します。

a メニューの「ファイル」->「新規」 -> 「ファイル」をクリックします。




b 「ファイル」ウィンドウで「openlayersTokyoproj」をクリックして選択し、「ファイル名」を「gml_point_akiruno.xml」と入力し、「完了」ボタンをクリックします。







c 「ファイルを開く」ウィンドウで、「OpenLayers-2.13.1」->「examples」->「gml」->「point.xml」をクリックして選択し、「OK」ボタンをクリックします。





d 「point.xml」の内容全部をコピーして「gml_point_akiruno.xml」に貼り付けて、次のように修正します。

ms:ogc_fid ms:name ms:id lon     lat
1          point   1     139.191 35.715
2          point2  2     139.211 35.742
3          point3  3     139.270 35.724
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<wfs:FeatureCollection xmlns:ms="http://mapserver.gis.umn.edu/mapserver" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd http://mapserver.gis.umn.edu/mapserver http://aneto.oco/cgi-bin/worldwfs?SERVICE=WFS&VERSION=1.0.0&REQUEST=DescribeFeatureType&TYPENAME=point&OUTPUTFORMAT=XMLSCHEMA">

 <gml:boundedBy>
  <gml:Box srsName="EPSG:4326">
   <gml:coordinates>139.191,35.715 139.270,35.742</gml:coordinates>
   <!-- フィーチャ(3点)を含む範囲 -->
  </gml:Box>
 </gml:boundedBy>
 <gml:featureMember>
  <ms:point fid="1">
   <gml:boundedBy>
    <gml:Box srsName="EPSG:4326">
     <gml:coordinates>139.191,35.715 139.191,35.715</gml:coordinates>
      <!-- このフィーチャの範囲(点なので同じ座標) -->
    </gml:Box>
   </gml:boundedBy>
   <ms:msGeometry>
    <gml:Point srsName="EPSG:4326">
     <gml:coordinates>139.191,35.715</gml:coordinates>
    </gml:Point>
   </ms:msGeometry>
   <ms:ogc_fid>1</ms:ogc_fid>
   <ms:name>point</ms:name>
   <ms:id>1</ms:id>
  </ms:point>
 </gml:featureMember>
 <!-- 表に合わせてあと2点分追加 -->
---
</wfs:FeatureCollection>

「ol012-nippon_bmi_akiruno_pgis.html」の「url: "gml/polygon.xml",」を「url: "gml_point_akiruno.xml",」に修正します。

0 件のコメント: