パンプキンスパイスラテ

IT系のことが多めの日記帳です

googleマップAPI

業務で必要になったので早速本を購入。

Google Maps API徹底活用ガイド

Google Maps API徹底活用ガイド

Google Maps APIv2活用リファレンス

Google Maps APIv2活用リファレンス

いろいろ見た結果、この2つが良さげだった。あ、オライリー見忘れた。。
あとは、WEBも併用して調べつつコンテンツ作成をしてたんだけど、いきなしハマった。

マーカーがクリックされたら情報ウィンドウを表示する
ここのサンプルをコピペしたんだけど、どうしてもFirebugでエラー表示されてしまう。

GEvent.addListener(map, "click", function(marker){
	marker.openInfoWindowHtml(detail);
});

試しにIEで確認したら正常に動いた。でも、FirefoxではFirebugエラー。文法の間違いはないし、しかも情報ウインドウはきちんと開く。でもマウスドラッグしたり、情報ウインドウを閉じるとエラー。なんでだろーと30分くらい調べた結果、ふと気がついた。
「map」は地図。「marker」はマーカー。ん?

GEvent.addListener(map, "click", function(marker){
	marker.openInfoWindowHtml(detail);
});

これ!!クリックイベントが地図自体に設定されとる!!
地図クリック→対象マーカーに情報ウインドウを開く
ってなってた。そりゃエラーになるわ。マウスドラッグも、情報ウインドウを閉じる時も、地図をクリックしてることになるから。
というわけで修正版。

GEvent.addListener(marker, "click", function(){
	marker.openInfoWindowHtml(detail);
});

これでうまくいくよ。