■ kml ファイルとは
KML (Keyhole Markup Language) は、地理データを格納する XML ベースの形式で、
OGC (Open Geospatial Consortium) の管理する公式標準です。Google Earth などのアプリケーションが KML の表示に対応しています。
- kml ファイル kml とは
KMLの基本
KML学習手帳
Reference
サンプル
- 参考サイト kmlを作成
kmlエクスポート
AGtoKML
KML/CSV変換
■ kml ファイルの利用
kml ファイルは、
Google Earth で開くと簡単に表示できますが、Google Maps に直接読み込んで
表示することも出来ます。
kml ファイル(下記左)とその Google Maps での表示例(下記右)を以下に示します。その Google Maps ファイルは、
こちらです。
■ kml データの構造
kml ファイルは、ヘッド部,書式情報部,オブジェクト部の3つの部分で構成されています。構造については、
google のサイトに記述が有ります。また具体的な例は、
こちらにあります。
参考
国土数値情報の行政区域データを kml ファイルに変換した例について見てみましょう。
参考
- 国土数値情報サイトから ***.shp や ***.gml などの行政境界座標データファイルをダウンロードします。
- その行政境界データを変換ソフト QGIS を利用して ***.kml に変換します。
- そのファイルは右上図のようになっています。参考 →
- 右図の .kml ファイルの構造を見ると、
- 最初の2行に XML宣言部分があります。(緑部)
- 境界線を記述するデータは、<Polygon>・・・<coordinates>・・・の中に、「経度,緯度 経度,緯度 ・・・」の形で組り込まれています。 参考
- その間に、本体の名前やスタイルが記述されています。
- <coordinates>の中の「経度,緯度 経度,緯度 ・・・」の形のデータを、[[経度,緯度],[経度,緯度],・・・] のような2次元配列に変換して、次に述べる Google Maps JavaScript のデータとして組り込みます。
- なお、 ***.gml 形式の行政区域データには、<gml:posList>の後に、「緯度 経度 緯度 経度・・・」の形で組み込まれているので、***.kml に変更することなく同様な処理が可能です。(右下図) →
■ Google Maps JavaScript に取込み 参考
ここでは、上で述べたように2次元配列データを Google Maps JavaScript に
取り込み、行政境界線を引いてみましょう。
- まず行政境界座標データを、[[経度,緯度],[経度,緯度],・・・] のような2次元配列として取り込みます。
- そのデータをGoogle Maps JavaScript の polyline データとして利用します。
- 勿論そのデータをエンコードして利用することも出来ます。↓
- [緯度,経度] の2次元配列データを取り込んだ地図が表示されます。↓
■ Google Static Maps に取込み 参考
2次元配列位置データは次のように
Google Static Maps に
取り込み、表示することも出来ます。ただし、2048文字までの
文字数制限があるので、データ量の多い行政境界座標データの表示には向いていません。必要なら更に
エンコードします。
◆ 2次元配列位置データを、path=緯度,経度|緯度,経度|・・・ の形で、Static Maps の path データとして取込みます。↓ 参考
◆ 表示例
■ 参考サイト