【问题标题】:Most efficient way to get visible markers on a map?在地图上获得可见标记的最有效方法?
【发布时间】:2018-01-06 01:25:29
【问题描述】:

我有一张地图,上面有成千上万个标记,当前存储在数组 (docs for Marker Class) 中。我需要找到当前地图范围内的标记。

最明显的方法是遍历整个数组并检查地图边界是否包含标记,但这不是一种有效的方法。

什么数据结构和/或算法可以帮助解决问题?

【问题讨论】:

  • 你能给出这个数组的sn-p吗?
  • 可能这里也可以应用通常用于 2D 物理引擎的分块
  • @Ivan 数组包含谷歌地图标记类实例,我已经添加了文档链接
  • @gsklainski 我们知道文档,添加一个真正的 sn-p( 按钮)来显示您的问题以及您尝试解决的问题。然后我们可以简单地使用该 sn-p 并使其工作......
  • 如果您可以根据纬度或经度对标记进行排序。过滤过程可以用纯javascript增强。可能 B-tree 数据结构可以解决这个问题。但是我想知道这种复杂性是否必要,您的基本阵列的当前性能是什么。以及你需要什么性能

标签: javascript algorithm google-maps data-structures


【解决方案1】:

我会将纬度和经度值存储在某种数据库中,然后让数据库进行所有计算。然后您所要做的就是等待 ajax 响应(大约需要 10 到 400 毫秒),然后用查询中返回的新标记替换标记。渲染 50 个标记要比在地图上跟踪数十万个标记的位置同时还要循环查看它们是否应该显示要快得多。这也允许您的单线程 Javascript 专注于 UI 而不是复杂的计算。

【讨论】:

    猜你喜欢
    • 2019-11-17
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 2018-08-31
    • 2018-09-01
    相关资源
    最近更新 更多