※この記事の内容はIEでは上手く機能しない場合があります。(2014/09/01)
このメソッドはMarkerShapeオブジェクトを設定します。
MarkerShapeとはマーカーをマウスで触れる領域を設定したものです。
サンプルでは下図の星形のマーカーを用意しました。

このマーカーに対しpolyで星形の領域を作成し星の部分だけマウスで触れるようにしました。
マーカーにマウスオーバーイベントとマウスアウトイベントを設定して、
マウスオーバー時にはマーカーの透過度を0.5に、
マウスアウト時にはマーカーの透過度を1.0に設定しました。
マーカーにマウスを乘せたり外したりするとマーカーの透明度が変わると思います。
その際
var markerShape = { coord: [0, 70, 66, 60, 95, 0, 123, 60, 189, 70, 142, 114, 153, 179, 95, 148, 37, 179, 47, 114], type: "poly" }; marker.setShape(markerShape);と設定してあるので星マーカー部分に乗った場合のみマーカーの透過度が変わる事が確認できると思います。
以下サンプルです。
<!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/78QmnO" }); var markerShape = { coord: [0, 70, 66, 60, 95, 0, 123, 60, 189, 70, 142, 114, 153, 179, 95, 148, 37, 179, 47, 114], type: "poly" }; marker.setShape(markerShape); // ここから下はsetShapeメソッドの機能確認用のイベントです。 google.maps.event.addListener(marker, "mouseover", function () { this.setOpacity(0.5); }); google.maps.event.addListener(marker, "mouseout", function () { this.setOpacity(1.0); }); }); </script> </head> <body> <div id="map_canvas" style="width: 400px; height: 400px"></div> </body> </html>
0 件のコメント:
コメントを投稿