javascript - 根据当前 View 边界加载 map 对象

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

我有一个带有 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/

相关文章:

javascript - jsPDF 没有正确渲染 SVG 图像

ruby-on-rails - Ruby on Rails 4 中的日期时间格式

ruby-on-rails - 如何在 View 中通过参数 id 查找值?

mysql - Rails 服务器在 OSX 10.73 中无法启动

google-maps - 使用 Google map 避免 "Sorry, we have no imagery here"

javascript - 有没有办法仅针对 html5 type=time 禁用分钟或小时选择?

javascript - 获取两个数组之间变化的算法

javascript - 防止复选框完全勾选/检查

android - map fragment 顶部的 float 操作按钮

c# - 反序列化未知类型的 JSON(Google Map API)