谷歌地图 - 弹出框

时间:2015-05-27 17:47:44

标签: google-maps kml popupwindow

我使用Zonums Solutions的Shp2kml2软件将多个shapefile转换为KML。我已经制作了一张带有KML图层的地图(我已将其导入google文档以获取网址)。举个例子:

  var ctaLayer = new google.maps.KmlLayer({
    url: 'https://docs.google.com/uc?authuser=0&id=0B15UI5xGYTOadDlta2FoZ2pCc1E&export=download'
  });
  ctaLayer.setMap(map);

当我点击谷歌地图中的多边形图层时,会打开弹出框。我怎样才能这样做,当我点击第二个多边形图层时,之前选择的弹出框会自动清除并且不再显示? (因为在我的情况下,早期的弹出框仍然显示但我不希望这发生,因为如果用户选择多个多边形图层,屏幕上会有太多的弹出框。我明白用户可以选择X删除弹出窗口,但我希望尽可能方便用户使用。)

除了多边形图层,地图中还有其他点图层。但是当我尝试点击一个特定点时,弹出信息就是多边形的信息,它与点位于同一个地方。

我的地图位于:http://userpages.flemingc.on.ca/~catam/collab.html

1 个答案:

答案 0 :(得分:0)

您可以考虑以下方法:

1)禁止默认信息窗口:

   var kmlOptions = {
           suppressInfoWindows: true,  // do not to display an info window when clicked
           preserveViewport: false,
           map: map
       };
   var layer = new google.maps.KmlLayer(url, kmlOptions);

2)注册Info Window共享实例:

 var infoWindow = new google.maps.InfoWindow();
 var openInfoWindow = function (KMLevent) {
    infoWindow.close();
    infoWindow.setOptions(
    {
        content: KMLevent.featureData.infoWindowHtml,
        position: KMLevent.latLng,
        pixelOffset: KMLevent.pixelOffset
    });
    infoWindow.open(map);
};
google.maps.event.addListener(layer, "click", openInfoWindow);

Example