关闭Google Maps v3中所有当前打开的信息窗口?

时间:2013-03-07 13:37:02

标签: javascript google-maps google-maps-api-3

在Google Maps v3中,如何关闭所有当前打开的信息窗口?

我不能只跟踪变量as some have suggested中最后打开的infowindow,因为在我的设置中每个标记都有唯一的文本,所以我必须将infowindow绑定到标记处。它被创造了。

_.each(new_companies, function(c) {
  var latLng = new google.maps.LatLng(c.com_d_coo_y_wgs84,
      c.com_d_coo_x_wgs84);
  var marker = new google.maps.Marker({'position': latLng});
  marker.info = new google.maps.InfoWindow({
    content: getTooltipText(c)
  });
  google.maps.event.addListener(marker, 'mouseover', function() {
      marker.info.open(map, marker);
      // How to close all currently open info windows?
  });
  google.maps.event.addListener(marker, 'click', function() {
    marker.info.open(map, marker);
  });
  newco_markers.push(marker);
});

我想我可以遍历newco_markers中的所有标记并关闭每个标记,但这感觉效率低下。

1 个答案:

答案 0 :(得分:3)

你应该尝试使用一个infowindow并通过API methods更新它的内容和位置:setPosition()和setContent()

编辑:

我假设你一次只需要一个信息窗口。如果您需要多个,那么您可以尝试使用对打开的信息窗口的引用来保持地图(对象)或数组。