问题与剩余的活动信息窗口时,另一个KML层选择 - 谷歌地图API V3(Issue with in

2019-06-25 08:30发布

我有被加载到我的谷歌地图API V3使用勾选框多个KML层。 当两个或更多个层中选择的一个层上的信息窗口不自动折叠时标记被点击的其它层。 我想在信息窗口自动关闭,即使它们是在不同的KML层 - 在正确的方向的任何指针会有所帮助。

谢谢

达伦·威尔逊

Answer 1:

你需要禁用默认的信息窗口的创建和处理代码信息窗口自己。 下面是一个例子:

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);


文章来源: Issue with infowindows remaining active when another KML layer is selected - Google Maps API V3