Google maps api 3 将API v3群集映射到不同的缩放级别

Google maps api 3 将API v3群集映射到不同的缩放级别,google-maps-api-3,markerclusterer,markermanager,Google Maps Api 3,Markerclusterer,Markermanager,我正在做一个地图项目,我需要集群。我实现了一个商店定位器,并使用了MarkerClusterer,效果很好。现在,我从客户那里得到了另一个要求,我想知道应该使用哪种解决方案来实现这些目标: 缩放级别0:彼此距离在1500km以内的簇标记 缩放级别1:1000公里范围内的集群 缩放级别2:750km范围内的群集 缩放级别3:400公里范围内的集群 缩放级别4及以上:无群集 我想我应该同时使用MarkerManager和MarkerClusterer,但我不确定这一点。有什么能帮助我走上正确的道

我正在做一个地图项目,我需要集群。我实现了一个商店定位器,并使用了MarkerClusterer,效果很好。现在,我从客户那里得到了另一个要求,我想知道应该使用哪种解决方案来实现这些目标:

  • 缩放级别0:彼此距离在1500km以内的簇标记
  • 缩放级别1:1000公里范围内的集群
  • 缩放级别2:750km范围内的群集
  • 缩放级别3:400公里范围内的集群
  • 缩放级别4及以上:无群集
我想我应该同时使用MarkerManager和MarkerClusterer,但我不确定这一点。有什么能帮助我走上正确的道路吗


提前谢谢

只能使用
MarkerClusterer
,但必须修改某些选项

要防止clusterer在级别4之后动作,必须使用
maxZoom
属性。它定义了clusterer可以对标记进行聚类的最大级别,因此在您的情况下,必须将其修正为4

然后,要根据缩放级别更改网格的大小,请使用
gridSize
属性。您可以找到所有选项字段的定义

因此,您的MarkerCluster实例将如下所示:

var mcOptions = {gridSize: /*Your value*/, maxZoom: 4};
var markerCluster = new MarkerClusterer(map, /*your array of markers*/ mcOptions);

嘿,谢谢你的回答。我了解
maxZoom
属性。但是,告诉聚类者根据缩放级别更改
gridSize
的过程是什么呢?我是否应该在每次缩放级别更改时重新创建群集?或者我可以使用
setGridSize
方法吗?如果是,是否会动态更新?此外,我需要基于公里数的距离对标记进行聚类,并以像素为单位设置网格大小。所以我想我必须自己做转换?我从来没有亲自做过,所以我不确定答案。但是,
setGridSize
方法似乎完全符合您的要求,因此我强烈建议您对其进行测试。但我不确定clusterer的自动刷新。你是对的,你必须自己做像素/公里的转换。太好了!这很有魅力。我在
zoom\u上添加了一个监听器,并用我计算的值相应地调用了
setGridSize
。再次谢谢你。@AlexB我似乎不能把我的头绕到网格大小上。你能解释一下吗??