0

我正在创建一个应用程序,让用户在使用 Android Location 类驾驶时提高速度。我面临的问题是论坛或文章上的每个帖子都解释了 getSpeed() 方法的问题。刚刚进入我的车测试几次,它返回0。我不知道为什么,只是想知道是否有人能够找出原因以及如何获得实际速度?

提前致谢

4

1 回答 1

1

getSpeed 工作得很好,只要您的设备中有功能强大的 GPS 硬件并且您有足够多的卫星在视线范围内。我将它用于飞行记录应用程序。

getSpeed 的一个问题是,模拟器总是返回 0;即使它提供了具有速度信息的 NMEA 数据。所以测试需要真实的设备。

如果 GPS 接收器在车内,一个问题可能是它无法及时获取足够的卫星进行测试。尝试将设备放在挡风玻璃附近(如果它没有被基于金属的反射表面覆盖!)并给它时间进行修复。考虑使用 GpsStatusListener 来获取可见卫星的计数。

上面提到的从样本距离计算速度的技巧需要过滤数据。你使用的样本越多,得到的噪音就越多(需要过滤,在这里搜索,关于这个主题的 stackoverflow 上有几篇文章)。您使用的样本越少,不沿直线移动时的误差就越大。

于 2012-04-12T06:54:45.273 回答