2010-06-11 7 views
1

搜索到SO和多篇文章后,我还没有找到解决我的问题的方法。如何使用R-Tree在谷歌地图上绘制大量的地图标记

我想要实现的是在Google地图上加载20,000个标记。

R-Tree看起来是一种很好的方法,但它只在搜索地图可见部分内的点时才有用。当地图缩小时,它会返回所有的点,并使浏览器崩溃。

拖动地图和拖动重新运行查询结束时也存在问题。

我想知道如何使用R-Tree并能够实现上述所有功能。

+0

我不清楚R-trees是如何提供帮助的,因为它们被设计为在空间上划分矩形的集合。另外,当地图缩小时,什么方案不会返回所有标记? – bbudge 2010-06-11 18:04:31

+0

集群不会返回所有标记,但我不清楚如何组合两个R-Tree +集群。 R-Tree会返回一个矩形和边界内的所有点,但所有这些点必须聚集并发送到客户端 - 对我来说效率似乎很低...... – Eeyore 2010-06-11 18:18:29

回答

2

如前所述,当您查看缩小视图时,R-Tree不会帮助您。这个问题通常通过标记聚类来解决,因为在浏览器窗口中显示20000点并不是那么有用。

Marker Manager是一个开源的JavaScript库,它解决了这个问题,但也有其他的。

对于非常多的标记,您可能需要查看服务器端集群(R-Tree可能派上用场!)。 Here是它的一个讨论,并且its google cache因为链接在写作时死了。

+0

我知道Marker Manager - 它可以用于高达2000标记。服务器端集群可能是必要的,但我的问题是如何结合这两种解决方案来实现我所需要的。每次拖动地图或缩放时重新运行集群将非常缓慢。 – Eeyore 2010-06-11 18:24:58

+0

+1给答案!谷歌声明如下:*实际结果中,[标记管理器]允许10,000个标记分布在大面积上,只要在给定的视口中只有100-200个可见,用户将看到对应于100个可见的良好性能标记*。 – jorgenkg 2014-09-02 19:37:46

0

如果您不想打扰群集,那么只需终止您的标记列表中的一个预设数字,可能是几百(您可以通过可用性测试确定),并显示一些指示,表明有更多可用的你放大