マップ上でクリックされたらマーカーを追加する

説明

GEvent.addListener()でクリックされた時にマーカーを追加する処理を指定します。マーカーの追加はaddOverlay()で行いますが、クリック地点の座標値はイベントハンドラに渡される2番目のパラメータにGLatLng形式で入っています。このGLatLngを、そのままGMarker()の最初のパラメータとして指定することでクリックした地点にマーカーが表示されるようになります。 また、API Ver 2.61以降では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[
window.onload = function() {
var map = new GMap2(document.getElementById("gmap"));
map.setCenter(new GLatLng(37,136), 5,G_NORMAL_MAP);
var gpObj = new GLatLng(36.5, 138);
GEvent.addListener(map, "click",
function(arg1, arg2){
var marker = new GMarker(arg2, { draggable: true });
map.addOverlay(marker);
} );
}
//]]>
</script>
</head>
<body>
<div id="gmap" style="width: 500px; height: 400px"></div>
</body>
</html>