基于缩放级别的服务器端坐标簇

时间:2009-09-28 15:28:21

标签: python google-maps postgresql google-maps-markers cluster-analysis

感谢answer 我设法为我的问题找到了一个临时解决方案。

然而,随着每天增长6000点的列表,它变得越来越慢。

我无法使用第三方服务*因此我需要提出自己的解决方案。

以下是我的要求:

  1. 需要聚类坐标 使用任何缩放级别的 地图。

  2. 需要缓存所有群集

  3. 理想情况下,没有必要 群集(计算距离) 如果添加了新点,则指向。

  4. 到目前为止,我已经实现了四叉树,它返回地图的四个边界,并返回地图可视区域内的任何坐标。

    我需要什么,我知道这不容易就是从DB(postgres)返回的点集群。

2 个答案:

答案 0 :(得分:2)

我不明白为什么你必须动态“聚集”。以您满意的分辨率汇总每个缩放级别。

具有简单的X,Y,#链接结构。当有人添加链接时,您插入真实位置(缩放级别最大或其他),然后从那里开始冒泡。

最终你将拥有10个(如果你有10个缩放级别)不同坐标的集合,每个不同的缩放级别一个。

计算是微不足道的,你只需要做一次。

答案 1 :(得分:1)

我目前正在进行大约2,000个标记的动态服务器端集群,但它运行速度非常快,最高可达20,000。您可以在此处查看我的算法的讨论:

Map Clustering Algorithm

每当用户移动地图时,我都会向服务器发送一个带有缩放级别和视图边界的请求,该请求将可查看标记聚类并将其发送回客户端。

我没有缓存群集,因为标记可以动态过滤和搜索 - 但如果它们是预先群集的,那么它会非常快!