Android轨道位置问题



我正在开发一个应用程序,在该应用程序中我必须计算从起点到终点的总距离。我使用Android SDK的位置管理器,使用位置侦听器并同时使用提供商(GPS和网络提供商),每20秒我就可以跟踪位置并将跟踪的位置放入阵列列表中。经过一段时间后,通过计算总距离

total distance = dist at point[0,1]+ dist at point[1,2] + ... +dist at point[n-1,n]

其中CCD_ 1是数组列表位置值的索引。

经过多次测试,没有得到准确的结果。大约为实际里程表值的60-70%。如果有其他选择,请提供指导。请指导我如何得到更准确的结果。

GPS和网络位置都有一定程度的不确定性,因此与里程表相比,两者通常都不会给你一个准确的距离。如果你在户外,而不是在城市峡谷中,GPS通常会给你比网络位置更好的距离估计。

距离估计不足(你看到的)可能是由于你的采样率(每20秒)或GPS信号丢失。我会尝试将您的采样率提高到每4秒左右一次,并确保您的GPS单元不会丢失修复。GPS的灵敏度可能因设备而异,因此请尝试使用几种不同的Android设备进行测试。你也可以查看我开发的一款安卓应用程序,该应用程序可以帮助测量安卓设备上的GPS精度:http://www.gpsbenchmark.com/

距离的过度估计通常是由GPS噪声引起的,或者由于GPS位置误差小(有时大)而引起的位置反弹。卡尔曼滤波器是减少某些噪声影响的好方法。您也可以尝试通过简化线条来过滤路径并减少一些细节。Douglas Peucker算法的实现可在MyTracks项目的Apache 2.0下获得:http://code.google.com/p/mytracks/source/browse/MyTracks/src/com/google/android/apps/mytracks/util/LocationUtils.java#78

最新更新