2

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

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

2) Server Side- 如此庞大的数据集的问题是我什至无法查询所有实体,所以我想在 SQL 中建立第一级基于网格的聚类,然后在从 SQL 获得第一次通过聚类结果后进行一些基于密度的聚类每个集群都有一个 clusterCount 和 avg lat/long。或者,如果对如此庞大的数据集有更好的想法,(我阅读了有关MAFIA, CLIQUE聚类的信息 http://www.siam.org/proceedings/datamining/2001/dm01_07NageshH.pdf)。

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

4

2 回答 2

0

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

也可以使用 Solr 来索引空间数据:Search API21 和 Apache Solr Search Integration22

于 2013-04-25T03:44:22.223 回答
0

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

https://github.com/biodiv/anycluster

(它在 python/geodjango/postgis 中)

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

http://www.maptimize.com/

于 2013-03-20T20:09:05.127 回答