【问题标题】:Clustering google map markers聚类谷歌地图标记
【发布时间】:2013-01-08 02:56:21
【问题描述】:

我想知道cluster map markers 的最佳方式是什么?我们目前在我们的应用程序中使用谷歌地图,其中每个实体都在地图上定义一个点,并有一个grid based clustering algorithm (64px X 64px grid) 用于对实体点进行聚类。这对大约 8 万个实体来说效果很好。我们拥有从 5000 到 150 万个实体不等的数据集。 1.5 million dataset 的问题在于,有这么多的标记,地图上几乎每个网格都是一个聚集标记,这不仅会导致糟糕的 UI(每个网格上都有一个聚集标记),而且还会增加地图的加载时间.

1) Client Side - 我已经尝试过客户端集群 (Map Clusterer)。这不起作用,因为具有 150 万个实体的 json 对象本身会减慢系统速度,而且 Map Clusterer 最多只能使用 50k 个标记。

2) Server Side - 如此庞大的数据集的问题是我什至无法查询所有实体,所以我想在 SQL 中使用基于网格的第一级聚类,然后在获得基于密度的聚类首先传递来自 SQL 的集群结果,每个集群都有一个 clusterCount 和 avg lat/long。 或者,如果对如此庞大的数据集有更好的想法,(我读到了 MAFIA, CLIQUE clustering http://www.siam.org/proceedings/datamining/2001/dm01_07NageshH.pdf )。

另外,在某些时候,我真的很想缓存这些数据(尽管这应该在一个单独的问题中提出),但如果有人也可以提供一些缓存技术,请记住集群、视口和缩放级别,这会很有帮助。

【问题讨论】:

  • 在这一点上,我会接受任何答案...有没有人尝试过 K-means 或四叉树进行聚类?

标签: javascript algorithm google-maps map google-maps-markers


【解决方案1】:

你可以试试我的 kmeans 服务器端解决方案:

https://github.com/biodiv/anycluster

(在 python/geodjango/postgis 中)

如果你有一大堆现金,你可以看看:

http://www.maptimize.com/

【讨论】:

    【解决方案2】:

    查看 GeoHash:http://en.wikipedia.org/wiki/Geohash

    也可以使用 Solr 来索引空间数据:搜索 API21 和 Apache Solr 搜索集成22

    【讨论】:

      猜你喜欢
      • 2012-12-17
      • 2014-04-05
      • 1970-01-01
      • 2018-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      相关资源
      最近更新 更多