「google earthで表示」を右クリックしてリンクアドレスをコピーして、そのURLの中の「output=nl」を「output=kml」に変更してアクセスするとkmlファイルがダウンロードされます。↓のプログラムをkml2csv.jsという名前で保存して、それに↑のKMLファイルをドラッグ&ドロップしてください。同名のCSVファイルに変換されます。
※「google earthで表示」を押してダウンロードされるKMLでは、変換できません。
※jsファイルが関連付けされてないと、実行できないかもしれません。
※変換できない場合があったので修正しました。2010.1.17
var input; var output; input = WScript.Arguments(0); output=input.replace(".kml",".csv"); var fs = new ActiveXObject ("Scripting.FileSystemObject"); var outf = fs.CreateTextFile (output, true); var xmlDoc = WScript.CreateObject("MSXML.DOMDocument"); xmlDoc.load(input); var wpts = xmlDoc.documentElement.getElementsByTagName("Placemark"); outf.WriteLine("lat,lon,name,snippet,description"); for(var i = 0; i<wpts.length;i++){ var names = wpts[i].getElementsByTagName("name"); if(names.length>0 && !!names[0].childNodes[0]) var name = names[0].childNodes[0].text; var snippets = wpts[i].getElementsByTagName("Snippet"); if(snippets.length>0 && !!snippets[0].childNodes[0]) var snippet = snippets[0].childNodes[0].text; var descriptions = wpts[i].getElementsByTagName("description"); if(descriptions.length>0 && !!descriptions[0].childNodes[0]) var description = descriptions[0].childNodes[0].text; // descriptionのタグを消したい時は、こちら↓ // if(descriptions.length>0 && !!descriptions[0].childNodes[0]) var description = descriptions[0].childNodes[0].text.replace(/\r?\n/g, "").replace(/,/g," ").replace(/<("[^"]*"|'[^']*'|[^'">])*>/g," "); var points = wpts[i].getElementsByTagName("Point"); if(points.length>0 && !!points[0].childNodes[0]) var point = points[0].childNodes[0].text.split(","); outf.WriteLine(point[1]+","+point[0]+","+name+","+snippet+","+description); }//for i outf.Close();