我有一个带有谷歌地图的Rails网络应用程序,它显示来自Mongoid数据库的标记。
标记的数量非常高并且一次加载它们非常耗费时间和资源。因此,我根据地图的当前视图边界加载对象,但有一个问题:
当边界发生变化(bounds_changed
事件)时,需要加载新对象,但我不想添加重复的标记。我没有找到任何方法这样做,除了创建所有加载对象的索引,然后比较每个加载的对象。但我认为可以采用更有效的方式。
https://github.com/shvelo/pathfinder https://github.com/shvelo/pathfinder/blob/master/app/assets/javascripts/client.js
答案 0 :(得分:1)
我在你的git repo中找不到 bounds_changed 事件,但你几乎可以从我收集的内容中做到这一点。例如:
var loaded = {"markerID1":true, "markerID2":true, ...};
if(!(marker in loaded)){
//Do stuff
}
目前还没有更好的方法。虽然,ECMAScript 6很快就会出现新标准,并且它实现了一个真正的Set对象。