「KMLか? GeoJsonか?」という記事でも書いていましたが、最初はKMLフォーマットを使用することも検討していました。せっかくなので、KMLも出力出来るソースも作成してみました。
pythonでは、simplekmlというパッケージが提供されており、簡単にKMLフォーマットのファイルが作成出来ます。
ドキュメントはこちらを参照して下さい。
simplekml.readthedocs.io
まずは、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に戻ります。