我使用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在加载地图时打开(显示)?
答案 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(事件,代码,......)。
代码未经过测试,只是为了获得想法
此致