【问题标题】:Google Maps V3 rendering over 1 million markers (in a reasonable time)Google Maps V3 渲染超过 100 万个标记(在合理的时间内)
【发布时间】:2014-04-22 10:55:36
【问题描述】:

我最近使用 API V3(最新版本)创建了一个 Google 地图。我的要求之一是能够渲染超过 100 万个标记(在合理的时间内)。合理的时间应在 15 秒以下。

我知道一次渲染所有 100 万个标记是相当疯狂的,这就是我研究性能选项的原因。我遇到并使用的选项之一是 MarkerClusterer:https://developers.google.com/maps/articles/toomanymarkers

但是,我现在开始在使用超过 100,000 个标记测试 MarkerClusterer 时发现性能问题,因为渲染地图和标记需要很长时间(1 分钟以上)。最终,我设法用大约 200,000 个标记使页面崩溃。

在使用这么多标记时,有什么方法可以提高地图的性能?

提前感谢您的帮助。

【问题讨论】:

  • 您可以考虑改用 FusionTablesLayer,在您用来绘制标记的地方添加圆圈。不期望所有标记都应该负责:) 没有测试过,但我认为这将是一种更快的方法。
  • 我会考虑这些。我快速浏览了文档,似乎数据由谷歌持有,以便他们可以进行处理。这很好,但我必须看看这些是否可以在任何手动干预需要时自动更新。

标签: javascript performance google-maps google-maps-api-3 markerclusterer


【解决方案1】:

我在地图上显示一百万多个点时遇到了类似的挑战。

在服务器端使用弹性搜索集群,在客户端使用传单集群。

这可能会有所帮助..

演示here

查看代码here

【讨论】:

    【解决方案2】:

    我已经成功使用了 Google Fusion Tables,它非常快速且非常简单——一旦你弄清楚如何使用 OAuth2....

    每个表格限制为 100,000 个条目,您可以从 CSV 文件上传它们 - 通过在浏览器中转到您的 Google 云端硬盘或使用 curl 或 Perl 以编程方式进行。

    要超过 100,000 个元素的限制,您可以在地图中添加 5 个图层,但这仍然只能达到 500,000 个点。无法提出更多建议。

    如果你想看看,我的项目是here

    【讨论】:

    • 您能否详细说明一下或提供一个链接来说明如何操作?我对javascript相当陌生,这正是我面临的问题。
    • 感谢链接,但实际上我不知道如何使用 google fusion table 以及如何完成 fusion table 的设置。因此,如果您也可以为此提供一些资源。这将是非常大的帮助。非常感谢您抽出时间。
    • 另外,您能否就另外一个查询提出您的建议。我有大约 20,000 个标记,但我没有静态的。用户提供一个文件,然后我在我的 javascript 文件中处理它,然后我有了位置。如果我在代码初始化中添加融合表中的所有条目会很快吗?还是应该仅通过在融合表中保持数据静态来完成?
    • Google Fusion Tables 服务将于 2019 年 12 月 3 日结束。
    猜你喜欢
    • 2016-10-21
    • 2012-01-29
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多