コマンドラインでGoogleマイマップをCSVに変換する方法

Nid: 1037
  • Posted on: 12 May 2018
  • By: admin

KML形式で保存したGoogleマイマップを、xmlstarletコマンドを使用してCSVに変換する方法です。
xmlstarlet は cygwinを含むUnix環境で使用できます。

  • 入力データ

$ head キャンプ場マップ.kml
<?xml version='1.0' encoding='UTF-8'?>
<kml>
        <Document>
                <name>キャンプ場マップ</name>
                <description><![CDATA[]]></description>
                <Folder>
                        <name>無題のレイヤ</name>
                        <Placemark>
                                <name>白馬アルプスオートキャンプ場</name>
                                <description><![CDATA[<img src="https://lh3.googleusercontent.com/proxy/QFIDFxnU-NmRXROGlA1GGYcaOKq8U_VPrB1l5AdyUXSLJGKn-gUAV_KwURLHdzTBP2kbKCo6FdfSuIqGCU6kxzUcSBv8i1EN" height="200" width="auto" /><br><br>白馬三山を望む松川沿いの絶景キャンプ場<br>GWには桜と残雪の白馬連峰の見事なコラボが<br>楽しめます。自宅から300kmとなかなか行かれ<br>ないがまたいつか訪れたい<br>徒歩5分に温泉「倉下の湯」<br>キャンプ場ホームページ (http://www17.ocn.ne.jp/~donguric/autocamp/index.html)<br> <br>施設 ★★★<br>景色 ★★★★★<br>お気に入り度 ★★★★★<br><br>レポ1回目【2012/5/3-6】 (http://osotodegohan.jugem.jp/?eid=106)]]></description>
 

  • CSVへの変換
$ sed -e 's/<kml.*/<kml>/' キャンプ場マップ.kml | xmlstarlet sel --template -m /kml/Document/Folder/Placemark -v "concat(name,',',Point/coordinates)" -nl | head
白馬アルプスオートキャンプ場,137.848549,36.713843,0.0
西湖自由キャンプ場,138.68557,35.50278,0.0
森のまきばオートキャンプ場,140.07225,35.391009,0.0
成田ゆめ牧場オートキャンプ場,140.399137,35.872394,0.0
本栖湖浩庵キャンプ場,138.575449,35.472204,0.0
有野実苑オートキャンプ場,140.384674,35.672358,0.0
やまぼうしオートキャンプ場,138.88040500000002,35.289418,0.0
西湖福住キャンプ場,138.6869,35.503409,0.0
西湖レークサイドキャンプ村,138.683381,35.502570000000006,0.0
PICA富士西湖,138.677502,35.494569,0.0