コマンドラインでGoogleマイマップをCSVに変換する方法
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