Javascript 谷歌地图标记聚类器“;“如果不扩展”;功能
我有一个带有标记聚类的谷歌地图。我这里有一个演示: 我想在cluster click事件上创建一个函数,当您单击的集群没有展开时触发该事件 走查:Javascript 谷歌地图标记聚类器“;“如果不扩展”;功能,javascript,google-maps,google-maps-api-3,markerclusterer,Javascript,Google Maps,Google Maps Api 3,Markerclusterer,我有一个带有标记聚类的谷歌地图。我这里有一个演示: 我想在cluster click事件上创建一个函数,当您单击的集群没有展开时触发该事件 走查: 单击伦敦旁边的4,地图将展开以显示这些标记 单击3,地图将展开以显示下一个标记 单击2,地图仍显示2——一个函数被触发 我可以这样做: var oldSize = false; google.maps.event.addListener(markerCluster, 'clusterclick', function(cluster) { v
4
,地图将展开以显示这些标记3
,地图将展开以显示下一个标记2
,地图仍显示2
——一个函数被触发var oldSize = false;
google.maps.event.addListener(markerCluster, 'clusterclick', function(cluster) {
var newSize = cluster.getSize();
var extra = '';
if(newSize == oldSize){
alert('this is the same size as it was previously!');
}
oldSize = newSize;
});
但这不是我想要的,因为发生的是
4
,地图将展开以显示这些标记3
,地图将展开以显示下一个标记2
,地图仍然显示2
2
,地图仍显示2
,此时警报将触发更复杂的是,当你被放大很长一段距离时,如果你点击一个集群,我不想加载所有集群的所有信息。我只想在您无法再放大时触发此函数。您的代码错误,因为:
google.maps.event.addListener(markerCluster, 'clusterclick', function(cluster) {
var clusterMarkers = cluster.getMarkers();
var lastPosition;
if(clusterMarkers.every((currentMarker) => {
if(!lastPosition || lastPosition.equals(currentMarker.position)) {
lastPosition = currentMarker.position;
return true;
} else {
return false;
}
})) {
// Do something
}
});
当你第一次点击“2”时,你希望发生什么?问题是在同一个地方有两个标记。通常的解决方法是@geocodezip请查看更多相关信息–重叠标记器看起来很棒–我会检查一下。我记得有几个类似的问题发布过。重复的