【问题标题】:Better solution for loading data onto a map将数据加载到地图上的更好解决方案
【发布时间】:2015-03-18 04:11:12
【问题描述】:

我想问是否有人知道我的问题的好方法。 我有一个带有 Bing 地图的 Rails 项目,我需要在其中加载大约 20000 个图钉。

我遇到的问题是我的数据加载速度。我试图通过仅包含记录的必填字段(id、纬度、经度)来优化加载时间。它有所作为,但仍然不是一个好的加载时间。

我做的下一件事 - 开始批量加载记录(一次几百个)。结果,图钉几乎立即开始出现,但同样需要很长时间才能完全加载数据集。

我非常感谢有关加载数据的更好方法的任何建议。

提前致谢!

【问题讨论】:

    标签: javascript ruby-on-rails json maps bing-maps


    【解决方案1】:

    您有多种解决方案来实现您想要做的事情,但主要问题是,您真的需要在地图控件上显示 20k 图钉并同时显示它们吗?我很确定它会缺乏可读性并增加性能成本,您可以考虑动态限制将显示的元素数量并仅加载真正可见的元素。

    1:客户端集群

    使用您自己的实现或此处提供的 Bing 地图模块:http://bingmapsv7modules.codeplex.com/wikipage?title=Client%20Side%20Clustering,您可以创建集群以简化图钉的数据操作和呈现。

    2:动态加载(服务器端裁剪和聚类)

    每次触发“onviewchanged”时,您都可以进行 AJAX 调用以刷新信息并清除之前添加的 pin。此外,如果您是缩放级别或在必须显示每个图钉的特定区域,您可以创建图钉集群,这样您将只显示一个图钉,上面写着“这里有 12 个图钉”。我相信你明白了。

    3:在服务器端或客户端合成动态磁贴

    如果您需要显示所有内容,最新的解决方案是根据您的用例在服务器端或客户端的动态图块上绘制内容,请参阅:http://www.web-maps.com/gisblog/?p=1605

    【讨论】:

    • 谢谢!这些建议正是我一直在寻找的。我一直在做客户端集群,但这需要加载数据集。我肯定会考虑只加载最初应该可见的数据,并在用户与地图交互时重新加载它。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 2011-11-21
    相关资源
    最近更新 更多