【问题标题】:How to load 1000+ Google Earth markers effectively?如何有效加载 1000 多个 Google 地球标记?
【发布时间】:2012-05-25 04:47:21
【问题描述】:

我有一个数组,其中包含 1000 多个 Google 地球标记。

目前我正在使用 for 循环遍历数组,这会导致地球冻结,直到它们全部成功加载。

任何人都可以推荐处理此问题的最佳方法,以便访问者更快地加载吗?

理想情况下,我正在考虑仅在视图/边界中加载这些标记,但尚未看到任何支持此想法的文档。

任何帮助将不胜感激!

谢谢

【问题讨论】:

  • 您必须编写自己的方法来检查标记位置的边界;现在很多应用都这样做了。
  • @Mathletics 你在实践中见过这样的顶级例子吗?不太确定纬度/经度如何等于界限。
  • Yelp 在基于地图的搜索中执行此操作。 Google Map 对象有一个名为getBounds 的方法,该方法返回:developers.google.com/maps/documentation/javascript/…,您可以使用它进行测试。你读过 API 吗?
  • 是的,我注意到 Earth 与 Maps API 之间存在相当多的差异 - 有很多不同,但我会尝试以 Maps 为例,并将其重新设计到 Earth 中。 Earth API 的工作示例/文档要少得多,这使得它有点困难:)
  • 天哪,对不起。我非常喜欢地图的东西,我忘记了地球有一个不同的集合。那么,我的道歉可能对你不起作用。

标签: javascript google-earth google-earth-plugin


【解决方案1】:

我建议您使用 HTML5 WebWorkers 异步实例化标记,然后使用它们为 show()/hide() 提供的任何方法,遍历您的对象。

它只适用于实现 WebWorkers 的最新浏览器,但我认为没有另一种有效的方法

【讨论】:

  • 嗯,是的,不幸的是我必须支持 IE7/8。我想这意味着我被卡住了!
【解决方案2】:

一种可能性是使用 KML 更新从服务器执行此操作: https://developers.google.com/kml/documentation/updates

例如,每次更新都会加载 100 个标记并显示它们,然后一秒钟后它会重新加载并提取接下来的 100 个标记。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 2012-08-10
    相关资源
    最近更新 更多