我正在编写一个距离计算应用程序,我的方法如下。
1。请求每500毫秒更新一次位置。
2。使用android.location.location中的distanceto()方法计算上一个位置和当前位置之间的距离。
三。更新总行驶距离。
进行精度检查以确保精度在给定的阈值内,并且只有足够精确的精度才能用于距离计算。
这工作很好,准确度也很好。然而,在慢行交通中,我们注意到应用程序上的行驶距离大于实际行驶距离(根据里程表)。我相信这可能是因为旅行的距离小于电话给出的准确度。因此,车辆可能移动了2-3米,但由于精度约为6-8米,因此在距离计算中引入了误差。
有没有人有过类似的应用经验?如果是这样,解决这个问题的最佳方法是什么?
谢谢。

最佳答案

如果位置更新之间的行驶距离与精度相当或小于精度,则可以预期计算的距离过大。
位置将围绕实际行驶路径曲折,曲折路径上的距离之和将大于实际路径(主要是直线路径)。
如果更新之间的时间很长,并且实际行驶路径包含大量曲线,则可能会出现相反的行为。在这种情况下,拐角将被截断,计算的总距离将太短。
解决问题的一个简单方法可能是降低低速时的更新频率(或基于最小行驶距离请求位置更新)。
一种更好的方法可能是平滑由观察到的位置描述的路径(即去除锯齿),例如使用道格拉斯-佩克算法。
编辑:可以找到与该问题相关的有趣阅读:

08-04 06:34