質問: Google Map APIを使用してマイマップを表示しています。 マーカーをクリックしたら、その座標を中心にしてズームしたいのですが を使えば実現出来ます。 ただ、kmzを読み込んで表示させているマーカーには反応しません。 kmzによって読み込まれたマーカーのクリックイベントはどのように取得すれば良いでしょうか? kmlLayerに対してイベントを設定しても、マーカーの座標から少しでもズレていると ズームした時に吹き出しの位置がマーカーの位置からズレてしまいますので、現実的ではありません。 ``` kmlLayer.addListener('click', function(e) { map.setZoom(16); map.setCenter(new google.maps.LatLng(e.latLng.lat(), e.latLng.lng())); }); ``` ※Googleのフォーラムに投稿したかったのですが、"権限がない"と言われてしまうので、こちらに投稿致しました。
回答: > > マーカーの位置からズレてしまいます > > > この部分がどういうことなのかがちょっと掴めないのですが、`pixelOffset` でマーカー分のずれは取得できるようです。 【KML レイヤと GeoRSS レイヤ | Google Maps JavaScript API | Google Developers】 > > pixelOffset は、InfoWindow の「尾」の部分を固定する上記の position からのオフセットを示します。ポリゴン オブジェクトの場合、このオフセットは通常 0,0 ですが、マーカーの場合はマーカーの高さが含まれます。 > > > 【Google Maps JavaScript API V3 Reference | Google Maps JavaScript API | Google Developers】