<< ラスターの色が一瞬で一色に! | top | VB(.NET)でSQLiteへ接続 >>

CSVからKMLに変換

CSVファイルからKMLファイルに変換できないかといろいろ調べていましたが、ふとKMLがOGCに提供されて、OGC KMLになったという記事を思い出しました。

OGCに承認されるということは、今後においてKMLを使った記述はますます増えていくことと思われます。

で、ふとGDAL/OGRで扱われているフォーマットを再度確認したところ、CSVKMLもあります。

ということは、GDAL/OGRの ogr2ogrを使えば、一発で変換できるだろうと想像しました。

その結果・・・
一発で変換できました!思ったとおり!
うれしいもんです。

ogr2ogr は、空間データ(地図データ)を扱う上で便利なさまざまなツール群である、FWTools に含まれています。また、MS4Wにも含まれているので(C:¥ms4w¥tools¥gdal-ogr)、比較的簡単に入手できると思います。

CSVファイルは、こちらに記述したとおり、VRTファイルというテキストファイルを作る必要がありますが、VRTファイルは一度作ってしまえば、ファイル名を変えるくらいで、使い回しがきくので、さほど抵抗なく、空間データにすることができると思います。

上記の記事に掲げたサンプルファイルを再掲します。

●サンプルのCSV(test.csv)
Latitude,Longitude,Name
48.1,0.25,"First point"
49.2,1.1,"Second point"
47.5,0.75,"Third point"

●サンプルのVRT(test.vrt)
<OGRVRTDataSource>
<OGRVRTLayer name="test">
<SrcDataSource>.¥test.csv</SrcDataSource>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding="PointFromColumns" x="Longitude" y="Latitude"/>
</OGRVRTLayer>
</OGRVRTDataSource>

ここまで準備ができたら、この二つのファイルを同じフォルダに置きます。

あとは、ogr2ogr で変換です。
下記は、FWTools(Windows版)を使った例です。

1.スタート − FWTools 2.#.# −FWTools Shell
 を選択すると、コマンドプロンプトが表示されます。
 これは、FWToolsの各実行コマンドまでのパスが切ってある状態で起動します。
2.cd c:¥temp¥kml のように、CSVとVRTファイルを保存したフォルダに移動します。
3. ogr2ogr -f "KML" test.kml test.vrt

以上です。コマンド一発で、test.kml ファイルが作成されます。
test.kml は、Google Earth で開いてもいいですし、どこかサーバー上にアップできれば、
http://maps.google.co.jp/maps?q=http://bugna.net/kml/test.kml

のように記述するだけで、Google マップ上で表示することができます。

今回作成した、CSV、VRT、KMLを下記におきました。

-http://bugna.net/kml/test.csv
-http://bugna.net/kml/test.vrt
-http://bugna.net/kml/test.kml

GDAL/OGRはこちらの記事に書いたとおり、C# や Visual Basic (.NET)からも扱えるので、プログラムの中で自動変換することも可能です。
bugna | MapServer | 09:43 | comments(0) | trackbacks(0) | - | - |
Comment









Trackback
URL:

09
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--
>>
<<
--