我正在编写一个需要知道您行驶速度的应用程序。我的应用程序与几台设备通信,它们都带有不同的内置 GPS 接收器。在我使用的硬件报告速度的地方,我使用该参数。但在某些情况下,我的硬件不报告速度,只报告纬度和经度。
在这种情况下,我一直在做的是标记我收到第一个坐标的时间,然后等待另一个坐标进入。然后我计算行进的距离并除以经过的时间。
我遇到的问题是一些硬件报告定位很快(每秒 5-10 次),而一些报告定位缓慢(每秒 0.5 次)。当我快速接收 GPS 位置时,由于 GPS 接收器固有的不准确性,我的算法无法准确计算速度。换句话说,由于 GPS 不准确,位置自然会移动,并且由于从上次接收到的位置经过的时间跨度非常小,我的算法认为我们在很短的时间内移动了很远——这意味着我们走得很快(当现实我们可能停滞不前)。
我怎样才能平均速度以避免这个问题?似乎该过程必须根据积分的进入速度进行自适应。例如,如果我只是平均收集的最后 5 个积分来计算速度,它可能对“快速”报告单位很有用,但它会伤害了我对“慢”报告单位的准确性。
有任何想法吗?