今回は影付きマーカーの話です。
以前のバージョンだとMarkerOptionsにshadowプロパティがあって、
影用のpng画像を作って指定すれば出来たのですが、
バージョンが3.14辺りからマーカーに影を付ける機能が無くなってしまい、
でも影を付けたい時もあるので、
そんな時のための記事になります。
とは言え難しいことをやるわけではなく、
どちらかと言えば力技です。
マーカーに影を付ける機能がなくなってしまったので、
もともと影の付いたマーカーを使ってしまおうという考えです。
影付きマーカーは
ここで簡単に作れます
影を付けたいマーカーを「画像ファイルをドロップして下さい」の部分にドロップするだけです。
出来上がった画像を右クリックなどで保存すれば終了です。
そんな訳でサンプルです。
使用したマーカー画像は下記の画像です。

マーカーアイコンの設定ですが、
サイズとアンカーポイントが変わってきます。
元の画像は、

で
幅:36ピクセル、縦:86ピクセルだったのですが、
影付き画像は、
幅:79ピクセル、縦:86ピクセルと幅が少し大きくなります。
また、元の画像ではアンカーポイントの設定は必要なかったのですが、
左右非対称になってしまったのでアンカーポイントの設定が必要になってきます。
アンカーポイントの設定は通常、
縦はそのまま画像の縦の長さで、、
幅は元の画像の幅÷2の値で設定すれば大丈夫です。
※割り切れない場合は小数点以下切り捨てで。
もし良く分からない場合は
1)マーカー画像を右クリック。
2)「編集」をクリック(ペイントソフトが起動します)。
3)キーボードの「ctrl」ボタンを押しながらマウスホイールをコロコロやって目一杯まで拡大。
4)アンカーポイントにしたい場所にマウスを持って行くと、ペイント画面の左下あたりに座標が出てくるので、その数値をそのまま使用して下さい。
ではサンプルです。
<!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: 13, center: latlng }; var gmap = new google.maps.Map(map, mapOptions); new google.maps.Marker({ position: latlng, map: gmap, icon: { url: "http://goo.gl/mBMkEQ", // 画像のURL size: new google.maps.Size(79, 86), // 画像のサイズ anchor: new google.maps.Point(18, 86) // 画像のアンカー } }); }); </script> </head> <body> <div id="map_canvas" style="width: 400px; height: 400px"></div> </body> </html>
0 件のコメント:
コメントを投稿