チェックボックスを使用して Google Map API V3 に読み込まれる複数の kml レイヤーがあります。2 つ以上のレイヤーが選択されている場合、1 つのレイヤーの情報ウィンドウは、他のレイヤーのマーカーをクリックしても自動的に折りたたまれません。情報ウィンドウが異なる KML レイヤー上にある場合でも、情報ウィンドウが自動的に閉じられるようにしたい - 正しい方向へのポインタが役に立ちます。
ありがとう
ダレン・ウィルソン
チェックボックスを使用して Google Map API V3 に読み込まれる複数の kml レイヤーがあります。2 つ以上のレイヤーが選択されている場合、1 つのレイヤーの情報ウィンドウは、他のレイヤーのマーカーをクリックしても自動的に折りたたまれません。情報ウィンドウが異なる KML レイヤー上にある場合でも、情報ウィンドウが自動的に閉じられるようにしたい - 正しい方向へのポインタが役に立ちます。
ありがとう
ダレン・ウィルソン
デフォルトの情報ウィンドウの作成を無効にして、情報ウィンドウを自分でコードで処理する必要があります。次に例を示します。
var CommonInfoWindow = new google.maps.InfoWindow({"maxWidth": 500});
/** @param {...*} KmlMouseEvent */
function KmlLayerClicked(KmlMouseEvent) {
var ClickData = /** @type {google.maps.KmlMouseEvent} */(KmlMouseEvent);
CommonInfoWindow.close();
if (ClickData.featureData && ClickData.featureData.id) {
CommonInfoWindow.setOptions({ "position": ClickData.latLng,
"pixelOffset": ClickData.pixelOffset,
"content": ClickData.featureData.infoWindowHtml
});
CommonInfoWindow.open(map);
}
}
/** @type {google.maps.KmlLayer} */
var KmlOverlay = new google.maps.KmlLayer(KmlUrl, {
'preserveViewport': true,
'suppressInfoWindows': true
});
google.maps.event.addListener(KmlOverlay, "click", KmlLayerClicked);