2014年8月29日金曜日

Marker Methods getShape()


※この記事の内容はIEでは上手く機能しない場合があります(2014/08/29)

このメソッドはMarkerShapeオブジェクトを取得します。
MarkerShapeとはマーカーをマウスで触れる領域を設定したものです。
サンプルでは下図の星形のマーカーを用意しました。


このマーカーに対しpolyで星形の領域を作成し星の部分だけマウスで触れるようにしました。
マーカーはドラッグ出来るようにしたのですが、
星以外の部分ではドラッグできないのが確認出来ると思います。

で、今回のメソッドの説明ですが、
このメソッドはこの設定したshapeオブジェクトを取得します。

取得したshapeオブジェクトのtypeプロパティの内容を地図のしたに表示しました。
マーカー作成時にshapeオブジェクトはpolyで作成したので、
polyが返されます。

以下サンプルです。
<!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,
                icon: "http://goo.gl/78QmnO",
                shape: { coord: [0, 70, 66, 60, 95, 0, 123, 60, 189, 70, 142, 114, 153, 179, 95, 148, 37, 179, 47, 114], type: "poly" }
            });
            var note = document.getElementById("note");
            note.innerText = "shape type = " + marker.getShape().type;
        });
    </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 件のコメント:

コメントを投稿