【发布时间】:2017-06-09 13:07:11
【问题描述】:
我有一个带有标记聚类的谷歌地图。我这里有一个演示:
https://codepen.io/EightArmsHQ/pen/LxLwZZ?editors=0010
我想在集群点击事件上创建一个函数,当你点击的集群没有展开时触发。
走过:
- 您点击伦敦旁边的
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,现在警报触发
谁能帮我提前一步触发函数?
更多信息:
我有一张您可以在某些博物馆或其他地理位置参观的物品的地图。当您单击每个标记时,我会将信息加载到页面中。然而,有些物品在同一个博物馆里。我遇到的问题是,当多个标记的 lat 和 lng 完全相同时,集群会永远留在那里。
这很好,但是在这种情况下,我想在同一位置加载所有标记的信息。因此,当您单击未扩展的集群时,我正在尝试创建函数来执行此操作。问题是,当您第二次单击未扩展的集群时,我发现这样做很简单,但不是第一次...
当您放大很长一段距离时,如果您单击一个集群,我不想加载所有集群的所有信息,这使情况更加复杂。我只想在您无法再放大时触发此功能。
【问题讨论】:
-
第一次点击“2”时你想发生什么?问题是在完全相同的地方有两个标记。通常的解决方案是OverlappingMarkerSpiderfier。
-
@geocodezip 请查看更多相关信息 - OverlappingMarkerSpiderfier 看起来很棒 - 我会检查一下。
-
有几个类似的问题我记得路过。
标签: javascript google-maps google-maps-api-3 markerclusterer