browser icon
You are using an insecure version of your web browser. Please update your browser!
Using an outdated browser makes your computer unsafe. For a safer, faster, more enjoyable user experience, please update your browser today or try a newer browser.

kmlとpolyを相互に変換する方法

Posted by on 2018/11/21

kml形式ファイルとpoly形式ファイルを相互変換する方法について覚え書きです。

環境

動作環境は以下のとおりです。変換にはGDALとpythonが必要になるので無い場合はインストールが必要です。

  • CPU:Core i5-4670 @3.4GHz
  • Memory:32GByte
  • Storage:64GByte(SSD) + 2TByte(HDD)
  • OS:Ubuntu18.04(64bit)

ソフトウェア

  • GDAL 2.2.3
  • Python 2.7.15rc1
  • ogr2poly.py

変換方法を探す

変換手段が見つからない

ネットの情報を漁ってみても、どうにもkmlとpolyを相互に変換する方法が見つかりません。

やっと見つけたのがこちらでogr対応フォーマットをpolyに変換するスクリプトです。ただ相互変換が出来ないのと、google my mapからエクスポートしたkmlは変換出来ませんでした。あまり需要も無いのかアップデートもされていません。

既存スクリプトを修正して解決

しかし、諸事情でpolyからkmlに変換したい案件が出てきたので上記のスクリプトを少し改造させてもらうことにしました。改造したスクリプトは以下のプロジェクトにあります。

機能としては、

  • Google kmlへの対応
  • polyからkmlへの簡易変換機能

の2つを追加しました。簡易変換なのは、これでpoly -> kml変換したファイルはgoogle my mapだとエラーが出て読み込めないからです。多分何か情報が足りてないのだと思いますが、QGISでは問題なく読み込めました。


$ git clone https://github.com/suke-blog/ogr2poly.py

$ cd ogr2poly.py
$ python ./ogr2poly.py
Usage: ogr2poly.py [options] src_datasource_name [layer]

Options:
-h, --help show this help message and exit
-p OUTPREFIX, --prefix=OUTPREFIX
Text to prepend to POLY filenames.
-b BUFFERDISTANCE, --buffer-distance=BUFFERDISTANCE
Set buffer distance in meters (default: 0).
-s SIMPLIFYDISTANCE, --simplify-distance=SIMPLIFYDISTANCE
Set simplify tolerance in meters (default: 0).
-f FIELDNAME, --field-name=FIELDNAME
Field name to use to name files.
-k, --convert-poly2kml
Convert poly to kml.
-v, --verbose Print detailed status messages.
Usage: ogr2poly.py [options] src_datasource_name [layer]

使い方は単純で変換したいファイルを引数で指定するだけです。poly -> kml変換のときはオプション”-k”を追加してください。


#kml -> poky変換
$ python ../ogr2poly.py ./Japan_Kanto_Tokyo.kml

#poly -> kml変換
$ python ../ogr2poly.py -k ./Japan_Kanto_Tokyo.poly

所感

またまた需要のなさそうなプログラムですが、geofabrikなどで配布されているpolyファイルをQGISで読み込みたいときに重宝しています。

コメントを残す

メールアドレスが公開されることはありません。

This blog is kept spam free by WP-SpamFree.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください