我有一个带有 Google map 的 Rails Web 应用程序,它显示来自 Mongoid 数据库的标记。
标记的数量非常多,一次性加载它们非常耗时且消耗资源。因此,我根据 map 的当前 View 边界加载对象,但有一个问题:
当边界更改(bounds_changed
事件)时需要加载新对象,但我不想添加重复的标记。除了创建所有加载对象的索引然后将每个加载对象与该索引进行比较之外,我还没有找到任何方法可以做到这一点。但我认为可以有更有效的方法。
https://github.com/shvelo/pathfinder https://github.com/shvelo/pathfinder/blob/master/app/assets/javascripts/client.js
最佳答案
我在您的 git 存储库中找不到 bounds_changed 事件,但从我收集到的信息来看,您几乎是正确执行的。示例:
var loaded = {"markerID1":true, "markerID2":true, ...};
if(!(marker in loaded)){
//Do stuff
}
目前还没有更好的办法。虽然,ECMAScript 6 很快就会成为新标准,并且它实现了真正的 Set 对象。
关于javascript - 根据当前 View 边界加载 map 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30201812/