我有多个 kml 图层,这些图层使用复选框加载到我的 Google 地图 API V3 中。选择两个或更多图层时,单击其他图层上的标记时,一个图层上的信息窗口不会自动折叠。我希望信息窗口自动关闭,即使它们位于不同的 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);