2

多亏了这个答案,我设法想出了一个临时解决方案来解决我的问题。

但是,随着每天增长的 6000 个点的列表,它变得越来越慢。

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

以下是我的要求:

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

  2. 所有集群都需要缓存

  3. 理想情况下,如果添加了新点,则不需要在所有点上进行聚类(计算距离)。

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

我需要并且我知道这并不容易是从数据库(postgres)返回点的集群。

4

2 回答 2

2

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

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

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

计算很简单,你只需要做一次。

于 2009-09-28T15:37:08.263 回答
1

我目前正在对大约 2,000 个标记进行动态服务器端聚类,但它的运行速度非常快,最多可达 20,000 个。你可以在这里看到我的算法的讨论:

地图聚类算法

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

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

于 2009-09-28T16:34:55.917 回答