【发布时间】:2012-07-05 08:42:33
【问题描述】:
在此页面上https://developers.google.com/maps/articles/toomanymarkers
它说这是最简单的集群可能,但我找不到任何客户端解决方案。有谁知道免费的开源、基于网格的谷歌地图标记聚类客户端解决方案?我不想要 MarkerClusterer。
我没有找到它,所以我开始编写自己的解决方案。第一个明显的要求是它必须快速加载至少 1000 个标记在地图上。每次放大、移动等,都会重复聚类的过程/功能。网格块可自定义,默认值为 50*50 像素。
下图显示了结果应该是什么样子。
我遇到了算法问题,现在我能想到的就是遍历每个网格的所有标记并询问它是否在边界内,然后增加网格 ++ 数组。这显然不能那样做。应该有一些哈希或只需要一次迭代所有标记的东西,我会知道特定于网格的标记属于哪个。
我希望有人能给我一个关于我所追求的算法的提示。谢谢!
【问题讨论】:
-
客户端集群的问题在于它违背了集群的目的。使用客户端集群,您仍然需要将有关每个标记的信息传输到客户端(到浏览器),并且客户端必须努力完成所有数字运算。除非您有充分的理由在客户端进行集群,否则我建议服务器端集群更有效。如果您在服务器上进行集群,然后仅将尽可能少的数据传输到客户端,则应该在任何浏览器上快速加载,即使在 IE 上也是如此。 :-)
-
我想做插件,就像 MarkerClusterer 一样。 [链接]google-maps-utility-library-v3.googlecode.com/svn/trunk/… MarkerClusterer 是所有客户端,对 1000 个标记的工作速度非常快。这个想法一定是一样的,只需要遍历一遍标记数组。定义了 5000 个标记的 JS 文件大小约为 100kb,这不是问题。
-
1000 个标记是“小东西”。 :-) 在此处查看具有 40,000 个标记的服务器端解决方案:maps.forum.nu/server_side_clusterer 和此处:maps.forum.nu/server_side_clusterer/index2.php
-
这很好。但我想要的只是 1000 个标记的客户端网格聚类器。简单......对我来说很难做到,没有一些聪明的算法建议。
标签: google-maps google-maps-api-3 google-maps-markers