Why it doesn't work?

作業のメモ、記録をブログに残しています。

PythonでKMLファイルを出力する

KMLか? GeoJsonか?」という記事でも書いていましたが、最初はKMLフォーマットを使用することも検討していました。せっかくなので、KMLも出力出来るソースも作成してみました。

pythonでは、simplekmlというパッケージが提供されており、簡単にKMLフォーマットのファイルが作成出来ます。
ドキュメントはこちらを参照して下さい。
bitbucket.org

まずは、GeoJSONと同じくpipでモジュールをインストールします。

pip install simplekml

なお、作成したソースコードは以下のリンク先に展開してあります。
create_kml.py
処理内容については、「pythonでGeoJSONファイルを出力する」と差はありませんので、KMLに関する部分だけを抜粋します。
1. まずは、simplekmlをインポートします。

import simplekml

2. simplekml.Kmlクラスのインスタンスを生成します。

kml = simplekml.Kml()

3. newpoint()メソッドを使用して、KMLフォーマットのデータを追加します。今回のソースコードでは”name"にタイムスタンプを設定しています。

kml.newpoint(name=timestamp, coords=[(float(longitude), float(latitude), float(altitude))])

4. save()を呼び出すことで以下のようなKMLフォーマットのファイルが出力されます。

kml.save(kname)
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
    <Document id="feat_1">
        <Placemark id="feat_2">
            <name>2018/02/03 10:31:23</name>
            <Point id="geom_0">
                <coordinates>139.665936,35.584047,14.0</coordinates>
            </Point>
        </Placemark>
    </Document>
</kml>

KMLについては現時点ではこれ以上追求するつもりはないので、またGeoJSONに戻ります。