【问题标题】:How to use R-Tree for plotting large number of map markers on google maps如何使用 R-Tree 在谷歌地图上绘制大量地图标记
【发布时间】:2010-06-11 17:16:47
【问题描述】:

搜索 SO 和多篇文章后,我还没有找到解决问题的方法。

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

R-Tree 似乎是一个不错的方法,但它仅在搜索地图可见部分内的点时才有用。当地图被缩小时,它会返回所有的点并且...崩溃浏览器。

拖拽地图也有问题,拖完重新运行查询。

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

【问题讨论】:

  • 我不清楚 R-trees 有什么帮助,因为它们被设计为对矩形集合进行空间分区。另外,缩小地图时,什么方案不会返回所有标记?
  • 聚类不会返回所有标记,但我不清楚如何组合两个 R-Tree + 聚类。 R-Tree 将返回一个矩形和边界内的所有点,但是所有这些点都必须聚集并发送到客户端 - 对我来说似乎效率很低......

标签: python google-maps cluster-analysis r-tree


【解决方案1】:

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

Marker Manager 是一个开源的 javascript 库,可以解决这个问题,但还有其他的。

对于大量标记,您可能需要查看服务器端集群(R-Tree 可能会派上用场!)。 Here 是其中的一个讨论,its google cache 因为在撰写本文时链接已失效。

【讨论】:

  • 我知道 Marker Manager - 最多可处理 2000 个标记。服务器端集群可能是必要的,但我的问题是如何结合这两种解决方案来完成我需要的。每次拖动地图或缩放时重新运行聚类会非常慢。
  • +1 回答! Google 声明如下:在实际结果中,[Marker Manager] 允许将 10,000 个标记分布在一个大区域内,只要在任何给定视口中只有 100-200 个可见,用户就会看到与100 个可见标记。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    相关资源
    最近更新 更多