我正在创建一个应用程序,可以在使用Android Location类驾驶时提高用户的速度。我面临的问题是论坛或文章中的每篇文章都解释了getSpeed()方法的问题。刚刚进入我的车进行多次测试,它返回0.我不知道为什么,只是想知道是否有人能够找到原因以及如何获得实际速度?
提前致谢
答案 0 :(得分:1)
getSpeed工作正常,前提是您的设备中有一个功能强大的GPS硬件,并且您可以看到足够的卫星。我正在将它用于飞行记录应用程序。
getSpeed的一个问题是,模拟器将始终返回0;即使它被提供有速度信息的NMEA数据。所以测试需要真正的设备。
如果GPS接收器位于车内,可能存在一个问题,即它无法及时获得足够的卫星进行测试。尝试将设备放在挡风玻璃附近(如果它没有覆盖基于金属物的反射表面!)并给它时间来修复。考虑使用GpsStatusListener来获取可见卫星的数量。
上面提到的从样本距离计算速度的技巧需要过滤数据。您使用的样本越多,您获得的噪声就越多(需要过滤,在此处搜索,有关此主题的stackoverflow上有几篇文章)。您使用的样本越少,不在直线上移动时的误差就越大。