2014年10月7日火曜日

MarkerShape Properties type


関連記事
MarkerShape Properties coords

このプロパティはマーカーのクリック領域を設定する
MarkerShapeの形を指定します。
指定出来るタイプは
circle、poly、rectの3つです。

circleは[x1, y1, r]
x1とy1は中心座標で
rは半径です。

polyは[x1,y1,x2,y2...xn,yn]
xとyをペアにして座標を指定していきます。
詳しくは下記の記事を参考にして下さい。
MarkerShape Properties coords

rextは[x1,y1,x2,y2]
x1,y1は左上の座標で
x2,y2は右下の座標になります。

指定する座標は全て使用する画像マーカーの左上が基準(0,0)となり、
右と下を正の方向になります。

サンプルでは下記の画像をマーカーとして設定します。
サイズは幅:146px、高さ:187pxです。
青い円は半径50pxの円になります。

とく意味のないマーカーですが、説明用に作りました。
クリッカブル領域は下記のように設定します。
shape: {
    coord: [50, 137, 50],
    type: "circle"
}
マーカーの青い丸の部分だけ触れるようになっています。

以下サンプルです。
<!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,
                icon: "http://goo.gl/qZcVMN",
                shape: {
                    coord: [50, 137, 50],
                    type: "circle"
                }
            });
            // ここから下はshapeメソッドの機能確認用のイベントです。
            google.maps.event.addListener(marker, "mouseover", function () {
                this.setOpacity(0.5);
            });
            google.maps.event.addListener(marker, "mouseout", function () {
                this.setOpacity(1.0);
            });
            // ここまで下はshapeメソッドの機能確認用のイベントです。
        });
    </script>
</head>
<body>
    <div id="map_canvas" style="width: 400px; height: 400px"></div>
</body>
</html>

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

0 件のコメント:

コメントを投稿