我有一张地图,上面有数万/数十万个标记,目前存储在数组中(标记类的文档(。我需要找到当前地图边界内的标记。
最明显的方法是遍历整个数组并检查映射边界是否包含标记,但这不是一种有效的方法。
什么数据结构和/或算法可以帮助解决问题?
我会将纬度和经度值存储在某种数据库中,然后让数据库执行所有计算。然后你所要做的就是等待 ajax 响应(这将需要 ~10 - 400 毫秒(,然后将标记替换为查询中返回的新标记。渲染 50 个标记将比跟踪地图上数十万个标记的位置要快得多,同时还循环浏览它们以查看它们是否应该显示。这也允许单线程 Javascript 专注于 UI 而不是复杂的计算。