2

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

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

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

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

我遇到了算法问题,现在我能想到的就是遍历每个网格的所有标记并询问它是否在边界内,然后增加网格 ++ 数组。这显然不能那样做。应该有一些哈希或只需要一次迭代所有标记的东西,我会知道特定于网格的标记属于哪个。

我希望有人能给我一个关于我所追求的算法的提示。谢谢 !在此处输入图像描述

4

2 回答 2

2

似乎 geohash 是您问题的答案,您甚至在问题中提到了该解决方案。这里解释得很好:

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

我实际上正在探索为 Google Maps API v3 开发类似的聚类算法。如果我真的能得到它,我会发布更多。

于 2013-12-19T08:26:03.313 回答
0

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

于 2012-08-09T22:13:10.023 回答