2009年01月16日
分かってしまえば簡単な事だった
何故かカスタムマーカーのアンカー範囲が狭い現象が起きていた。
下記、やりたかった事。
- GMapsを使い地図上にカスタムマーカーを設置
- マーカー画像(デフォルトマーカーより大きい画像)には写真を指定
- マーカーのリンク先を指定
何の問題もなく上手く行ったように思えていた。
しかし、3のアンカーあたり判定が何故か狭い。
同じ症状の人が見当たらない
自分だけ…?
自分が検索してみ限りでは同じ症状の人を発見出来なかった。
カスタムマーカーだから当り判定が狭いんじゃないのだろうか。
そんな仮説が頭の中に浮かんだ。
しかし、、、
カスタムマーカーを使い、自分が実装したい事を実現させているサービスが存在した。
実装出来ないはずがない。
違和感を覚えた1行
改めてコードを見直してみると、下記1行が気になった。
var photoIcon = new GIcon(G_DEFAULT_ICON);
自問自答。
何故、「G_DEFAULT_ICON」を指定しているのか…。
var photoIcon = new GIcon();
ためしに「G_DEFAULT_ICON」指定をやめてみた。
するとどうだろう…
意図する動きになった!
まとめ
上記条件を満たす場合、
GIcon()には不用意にG_DEFAULT_ICONを指定してはいけない。
- カスタムマーカーを使う場合
- GIconデフォルトマーカーよりも大きいカスタム画像をマーカーに使用する場合
サンプルコードをそのまま使い続けた事が一番の敗因。
リファレンスをよく読もう。
Google Maps Hacks 第2版 ―地図検索サービスをもっと活用するテクニック
posted with amazlet at 09.01.16
Rich Gibson Schuyler Erle
オライリー・ジャパン
売り上げランキング: 93859
オライリー・ジャパン
売り上げランキング: 93859
