首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌地图--弹出框

问谷歌地图--弹出框
EN

Stack Overflow用户
提问于 2015-05-27 17:47:44
回答 1查看 837关注 0票数 0

我已经使用来自Zonums的Shp2kml2软件将多个shapefiles转换为KML。我制作了一张带有KML层的地图(其中我已经导入到google文档中以获取url)。例如:

代码语言:javascript
复制
  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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-27 20:36:39

您可以考虑以下方法:

1)取消默认信息窗口:

代码语言:javascript
复制
   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)注册信息窗口的共享实例

代码语言:javascript
复制
 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);

示例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30489638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档