在Google地图中根据需要传播标记

时间:2011-02-05 17:35:16

标签: javascript google-maps-api-3

我在Google地图的给定视口中一次显示多个(数百个)标记。通常,这会导致标记相互绘制。

由于精确位置在绘制如此多标记的缩放级别上并不那么重要,是否有一个库或一段代码允许标记根据它们是否与其他标记重叠来动态更新它们的位置?当用户放大(并且标记变得更稀疏)时,标记将更接近其实际位置。

是的,我知道分组,标记聚类等。这些解决方案在我的情况下并不合适,因为所有标记始终都必须显示。实际上,我已经在适当的时候使用这些技术。我正在使用Javascript V3 API。

1 个答案:

答案 0 :(得分:2)

您可能需要实施自己的群集算法 - 我认为Google地图允许您实施自己的策略(我知道Bing地图会这样做,而且他们通常会在6个月左右的时间内相互复制正在实施的新功能)。< / p>

请注意,对于大量密集的图钉,您的分离约束但显示所有图钉都存在冲突。

对于策略,我的第一个想法是退火类型的算法,虽然它可能不是很快。基本上每个图钉将在一定距离内对周围的图钉施加力。迭代直到足够稳定。