クリックでマーカーを追加しマーカー座標をCSV形式にする

説明

マップ上をクリックしてマーカーを追加し、CSV形式でマーカー座標を生成します。マーカーはdraggable: trueとして自由にドラッグできるようにしておくとマーカー追加後に位置を変更できるので便利です。続きは書籍で、どうぞ...
逆引きGoogle Maps APIリファレンス  詳しい解説などは逆引きGoogle Maps APIリファレンス、またはGoogle Maps APIリファレンスを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Sample</title>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAasAJryKxWJnBFVJa487d9hTHGAxTVT7IRADYa-JdYz7xQ8IQZBSthgDZdggYpQHsmm6WYtHstQFfLA" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var map;
var markerData = [];
var count = 0;
var LF = String.fromCharCode(10);
window.onload = function() {
map = new GMap2(document.getElementById("gmap"));
map.setCenter(new GLatLng(37,136), 5,G_NORMAL_MAP);
map.addControl(new GLargeMapControl());
GEvent.addListener(map, "click", function(marker, point){
map.addOverlay(markerData[count++] = new GMarker(point, { draggable: true }));
} );
}
function makeCSV() {
var saveData = "";
for (var i=0; i<count; i++) {
var pnt = markerData[i].getPoint();
saveData += pnt.lng() +","+pnt.lat()+LF;
}
document.getElementById("result").value = saveData;
}
function clearMarker() {
map.clearOverlays();
markerData.length = 0;
count = 0;
document.getElementById("result").value = "";
}
//]]>
</script>
</head>
<body>
<div id="gmap" style="width: 500px; height: 400px"></div>
<form>
<input type="button" value="CSVデータ生成" onClick="makeCSV()" />
<input type="button" value="全マーカー消去" onClick="clearMarker()" /><br />
<textarea cols="50" rows="12" id="result"></textarea>
</form>
</body>
</html>