1

我正在构建一个基于 GPS 的跟踪应用程序,其想法是显示过去 24 小时内车辆的总路线,数据平均每半分钟出现一次。

除了这些数据之外,还有各种各样的围墙、路线标记、基于不同运输车辆状况的各种颜色代码、基于 GPS 设备发送数据的不同角度的不同路线图像。

考虑到所有这些,数据非常大,并且有很多逻辑和条件。

我们通过创建 xml 并在地图上渲染为图层并放置其他颜色图标来加载谷歌地图

将标记从 XML 文件加载到 Google Map API 方法是实现的基础。我们每 3 秒刷新一次地图,并放置带有图层的完整 xml。

问题:

  1. 每次进行 ajax 调用时,带有图标和图像的地图都会抖动,并且不会发生自动地图更新的感觉
  2. 当地图上存在大量数据时,应用程序会变得非常缓慢并且浏览器会崩溃很多次

需要帮助:

  1. XML 加载是加载地图的最优化方式吗?
  2. 还有其他更好的选择 - 请建议
  3. 很多论坛指向 https://developers.google.com/maps/documentation/javascript/kmllayer 这是需要采取的方法吗
4

1 回答 1

1

我认为您需要对显示数据进行一些优化。XML 方法很好,问题是它们太多了。

首先,您可以使用google.maps.Map 类getBounds()中的方法,并且只显示用户视图内的标记。这就像当用户只能看到 10 个数据时为什么要绘制 10,000 个数据?
您还应该收听该bounds_changed 事件,以便您可以相应地更新您的视图。

其次,即使用户正在查看广阔的区域,您也完全不想显示所有标记,这不仅速度慢,而且体验也很糟糕。
在此处输入图像描述
相反,您应该对数据进行分组,就像 iOS 的照片应用程序的按区域分组功能所做的那样。
在此处输入图像描述

还可以回收您的标记,而不是删除和创建。

于 2015-03-27T19:12:49.733 回答