2

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

我需要的是,当加载地图时,打开地图上显示的所有标记和集群的所有 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();它返回已抓取标记的数量,并且它可以在加载整个地图后返回它,或者类似的东西。

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

4

2 回答 2

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

您可以像访问其他属性一样访问您喜欢的标记信息窗口(事件、代码......)。

未经测试的代码,只是为了得到这个想法

问候

于 2013-01-08T15:11:52.510 回答
0

infowindows 仅在单击时打开,因为您仅在单击事件侦听器上创建它们。将创建信息窗口的代码从单击处理程序中移出,改为窗口加载事件处理程序。

于 2013-01-08T09:09:33.357 回答