2014年9月10日水曜日

Marker Events position_changed


このイベントはマーカーの座標が変化した時に発生するイベントです。
マーカーイベントのなかで比較的使用頻度の高いイベントではないでしょうか。

サンプルではマーカーをドラッグで移動させ、
そのマーカーの座標を表示しています。
このイベントはMouseEventの様な引数はないので、
座標を取得するには自信のオブジェクトを参照するなどし、
座標を取得する必要があります。
javascriptはクロージャをサポートしているので、
25行目のように
note.innerText = "座標 " + marker.getPosition();
とmarkerを参照することも出来ます。

以下サンプルです。
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8" />
    <title>google maps api v3</title>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript">
        google.maps.event.addDomListener(window, "load", function () {
            var map = document.getElementById("map_canvas");
            var latlng = new google.maps.LatLng(35.658580, 139.745433);
            var mapOptions = {
                zoom: 15,
                center: latlng
            };
            var gmap = new google.maps.Map(map, mapOptions);
            var marker = new google.maps.Marker({
                map: gmap,
                position: latlng,
                draggable: true
            });
            google.maps.event.addListener(marker, "position_changed", function () {
                var note = document.getElementById("note");
                note.innerText = "座標 " + this.getPosition();
                // 下記のようにしても同じです。
                //note.innerText = "座標 " + marker.getPosition();
            });
        });
    </script>
</head>
<body>
    <div id="map_canvas" style="width: 400px; height: 400px"></div>
    <p id="note" style="padding: 10px; background-color:#f50; color: #fff;">
    </p>
</body>
</html>

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿