我们正在为印度的一家租车巨头构建基于 Android GPS 的距离计算器。当我们的司机在空闲时在封闭空间(商场等)等待和徘徊时,我们的 GPS 会不断地跳动。这导致在 1 小时内总距离增加 1-2 公里。如何减少这种情况?
这是我们的逻辑
- 注册到 FusedLocationProvider onLocationChange(LocationUpdateRequest - 更新间隔 - 7 秒,即每 7 秒期待一次定位)
OnLocation 使用以下条件更改过滤噪声位置。
第 1 步- 过滤精度 < 170 米的位置
第 2 步- 如果速度超过 40 m/s(相当于 150 KMPH)或加速度超过 4 m/s^2(相当于 0-75 KMPH 在 5 秒内),则忽略它,因为真正的汽车很少超过这些速度,但 GPS 经常跳跃。
第 3 步- 如果位置来自移动网络超过 5 分钟(即方位/航向 = 0),则开始忽略这些。最后,如果该位置符合上述条件,则保存它们并增量计算距离。
即使在这一切之后,我们仍然经常遇到 GPS 跳跃的问题,因为我们的司机在等待期间往往会在封闭的空间(商场等)中等待和徘徊。这些跳跃会在 1 小时内使总距离增加 1-2 公里。如何过滤噪声并平滑数据?
有人可以提供建议吗?如果需要,可以共享 GPS 跳跃数据。