Maps API v3以不同的缩放级别进行聚类

MrU*_*own 4 google-maps-api-3 markermanager markerclusterer

我正在进行一个需要聚类的地图项目.我实现了一个商店定位器并使用了MarkerClusterer,它工作正常.现在我有另一个客户的要求,我想知道我应该使用哪种解决方案来实现这些目标:

  • 缩放级别0:彼此相距1500千米的聚类标记
  • 缩放级别1:1000千米内的群集
  • 缩放级别2:750km内的簇
  • 缩放级别3:400km内的簇
  • 缩放级别4及以上:无群集

我在想我应该一起使用MarkerManager和MarkerClusterer,但我不确定.有什么帮助让我走上正确的道路?

提前致谢!

Ale*_*exB 6

您只能使用MarkerClusterer,但您必须修改一些选项.

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

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

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

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

  • 完善!那就像一个魅力。我在`zoom_changed`上添加了一个监听器,并使用我计算出的值相应地调用了`setGridSize`。再次感谢。 (2认同)