Google地图 - 基于网格的群集

时间:2012-07-04 22:18:10

标签: google-maps google-maps-api-3 google-maps-markers

在此页https://developers.google.com/maps/articles/toomanymarkers

它说这是最简单的群集,但我找不到任何客户端解决方案。有没有人知道谷歌地图标记的基于网格的聚类的免费开源,客户端解决方案?我不想要MarkerClusterer。

我没有找到它,所以我开始编写自己的解决方案。第一个明显的要求是它必须快速地在地图上加载至少1000个标记。每次放大,移动和soo都将重复聚类的过程/功能。网格块可自定义,默认值为50 * 50像素。

下面的图片显示了结果应该是什么样子。

我遇到了algoritem的问题,现在我只能想到这是为了通过每个网格的所有标记进行迭代,并询问它是否在bounderies内,然后增加grid ++数组。这种方式显然无法做到这一点。应该有一些哈希或者只需要通过所有标记进行一次迭代的东西,我就会知道哪个网格特定的标记属于哪个。

我希望有人会给我一些暗示我想要的算法。谢谢!enter image description here

2 个答案:

答案 0 :(得分:2)

似乎geohash是你问题的答案,你甚至可以在你的问题中提到这个解决方案。这里解释得很好:

http://blog.trifork.com/2013/08/01/server-side-clustering-of-geo-points-on-a-map-using-elasticsearch/

我实际上正在探索为Google Maps API v3开发类似的群集算法。如果我真的能随身携带它,我会发布更多。

答案 1 :(得分:0)

您可以使用geohash或空间填充曲线来缩小尺寸并重新排序和散列标记。在服务器端,您可以使用点和空间索引数据结构,但您也可以手动计算geohash。寻找xkcd互联网地图漫画和希尔伯特曲线,看看它是如何工作的。