【问题标题】:Google Maps API v3, lots of markers, clustering and performanceGoogle Maps API v3,大量标记、聚类和性能
【发布时间】:2011-07-05 05:12:54
【问题描述】:

我需要在 Google 地图上渲染大约 5000 个标记。我目前正在使用 API (v3),在较慢的机器上存在性能问题,尤其是在 IE 中。我已经做了以下事情来帮助加快速度:

  1. 使用了一个简单的标记类,它扩展了 OverlayView 并为每个标记呈现单个 DIV 元素
  2. 实现了 MarkerClusterer 库以对不同级别的标记进行聚类
  3. 为 IE 渲染 GIF,而不是 alpha PNG

有更快的聚类类吗?还有其他提示吗?我试图避免服务器端集群,除非这是从系统中挤出性能的唯一选择。

谢谢

【问题讨论】:

  • 我想你已经读过code.google.com/apis/maps/articles/toomanymarkers.html 尤其是FusionTablesLayer
  • 我正在使用该页面中的 MarkerClusterer 库。在地图上渲染很多东西时(即使是集群),IE6 的性能仍然很糟糕,我真的在寻找改进特定浏览器的方法。
  • 我知道这是旧的,但是你有多少用户使用 IE6?
  • svennerberg.com/2009/01/… 比较不同的库及其性能(一种基准)
  • 查看 MarkerClustererPlus。

标签: performance google-maps google-maps-api-3 google-maps-markers cluster-analysis


【解决方案1】:

我使用了一种方法,将所有标记加载到页面上,然后监听地图完成平移。

地图完成平移后,我首先检查缩放级别 - 如果缩放级别太高,我不会显示任何内容。如果它处于可接受的水平,然后我会遍历我存储的标记,看看它们是否落入地图的边界框内。如果他们这样做,他们会被添加。然后,第二个循环会删除已移出视图的所有内容。

我用这种方法使用的最高数字是大约 30,000 个标记,虽然我有它,所以你必须放大很远才能看到它们。在标记浓度较高的区域,它显然会慢一些,但它是可用的。

【讨论】:

    【解决方案2】:

    上述解决方案适用于更多数量的标记。我们将它用于后端的数百万个 GPS 点(包括多边形等)。唯一的问题是背后的一些逻辑,例如空间查询的正确缓存,或仅在用户移动地图超过 X 米时获取新结果。有很多工作要做,但要查看真正的高点数,没有比这更好的了。

    标记集群通常在浏览器端工作,因此仍然需要一次加载所有点 - 这使得这种方法无法用于大量数据。

    您可以在http://www.tixik.com/london-2354567.htm live 上查看它(只需单击 ,,plan a trip ”并开始计划。只需尝试移动地图、放大或缩小,所有点都会在地图缩放/拖动时显示/隐藏。

    【讨论】:

    • 答案没有固定的顺序,评论似乎更适合您的文本
    • 太长了 171 个字符
    猜你喜欢
    • 1970-01-01
    • 2012-01-08
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 2015-07-16
    • 2013-06-02
    相关资源
    最近更新 更多