2009年01月16日

GIcon()で不用意にG_DEFAULT_ICONを指定してはいけない

livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

分かってしまえば簡単な事だった

何故かカスタムマーカーのアンカー範囲が狭い現象が起きていた。
下記、やりたかった事。

  1. GMapsを使い地図上にカスタムマーカーを設置
  2. マーカー画像(デフォルトマーカーより大きい画像)には写真を指定
  3. マーカーのリンク先を指定

何の問題もなく上手く行ったように思えていた。
しかし、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版 ―地図検索サービスをもっと活用するテクニック
Rich Gibson Schuyler Erle
オライリー・ジャパン
売り上げランキング: 93859


トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔