【问题标题】:Load objects for the map based on current view bounds根据当前视图边界为地图加载对象
【发布时间】:2015-05-12 21:34:08
【问题描述】:

我有一个带有 Google 地图的 Rails 网络应用程序,它显示了 Mongoid 数据库中的标记。

标记的数量非常多,一次加载它们非常耗费时间和资源。因此,我根据地图的当前视图边界加载对象,但存在一个问题:

边界改变时需要加载新对象(bounds_changed 事件),但我不想添加重复的标记。除了创建所有加载对象的索引然后将每个加载的对象与之进行比较之外,我还没有找到任何方法。但我认为可以有更有效的方法。

https://github.com/shvelo/pathfinder https://github.com/shvelo/pathfinder/blob/master/app/assets/javascripts/client.js

【问题讨论】:

    标签: javascript ruby-on-rails google-maps google-maps-api-3


    【解决方案1】:

    我在您的 git 存储库中找不到 bounds_changed 事件,但从我收集到的信息来看,您几乎是在做这件事。示例:

    var loaded = {"markerID1":true, "markerID2":true, ...};
    
    if(!(marker in loaded)){
    //Do stuff
    }
    

    目前没有更好的方法。虽然,ECMAScript 6 很快就会成为新标准,并且它实现了一个真正的 Set 对象。

    【讨论】:

    • loaded[marker]marker in loaded 稍快,所以我正在使用它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 2021-03-11
    相关资源
    最近更新 更多