自动打开Goog​​le Maps infowindows以获取所有标记和标记群集

时间:2013-01-07 19:37:27

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

我使用Google Maps api v3版本创建Google地图。这是“标准”谷歌地图,充满了标记和群集。每个标记和集群都有自己的InfoWindow,在最终用户点击它时显示。

我需要的是,当加载地图时,打开地图上显示的所有标记和群集的所有InfoWindows。

现在,只有点击它们才能显示它们:

google.maps.event.addListener(markerGreenCluster, 'clusterclick', function(markerGreenCluster) {

  var content = '';
  var info = new google.maps.MVCObject;
  info.set('position', markerGreenCluster.center_);
  var infowindow = new google.maps.InfoWindow();
  aIWgreen.push(infowindow);
  var center = markerGreenCluster.getCenter();
  var size = markerGreenCluster.getSize();
  var markers = markerGreenCluster.getMarkers();

  // more code goes here...

})

我注意到问题出现在群集定义中,方法 markerGreenCluster.getSize(); 它会返回grupped标记的数量,并且可以在加载整个地图后返回它,或类似的东西。< / p>

你能帮助我如何实现所有InfoWindows在加载地图时打开(显示)?

2 个答案:

答案 0 :(得分:0)

infowindows仅在点击时打开,因为您只在Click事件监听器上创建它们。将创建infowindows的代码从click处理程序移到窗口加载事件处理程序中。

答案 1 :(得分:0)

为此,我要做的是创建一个InfoWindows对象并将其存储到标记中。像这样的东西

function CreateMarker(Lat, Lng, Title, Content) {
  var aInfoWin = new google.maps.InfoWindow({
    content: Content,
    position: new google.maps.LatLng(Lat,Lng)
    });

  var aMarker = new StyledMarker({
    title: Title,
    position: new google.maps.LatLng(Lat,Lng),
    MyInfoWin: aInfoWin
    });

  aMarker.MyInfoWin.open();
}

您可以像其他属性一样访问Marker InfoWindows(事件,代码,......)。

代码未经过测试,只是为了获得想法

此致