我正在跟踪骑手的位置(自行车骑手)并计算他每次走的总行程距离。我只使用融合位置api(没有GPS)。有时候我会在位置上跳跃,并且由于这些跳跃会增加额外的距离,因此导致整体错误的距离。请帮助我找到这些错误的纬度和经度。有没有什么好的过滤器可以在Android中轻松实现,或者有什么好方法可以实现?
答案 0 :(得分:1)
原始GPS数据的距离测量总是有噪声,因为基础数据通常不准确。这些跳跃是由于位置测量不准确造成的。要实现精确的距离测量,您可能需要过滤数据中的噪声。
您可以探索的一些有用的过滤技术是:
使用卡尔曼滤波器平滑位置数据 - 请参阅tutorial
使用Google地图snap-to-roads API或OSRM match service抢占道路。
如果您正在寻找能够提供准确位置数据和距离测量的端到端解决方案,您还可以尝试使用适用于Android或iOS的HyperTrack SDK。您可以阅读有关如何过滤位置以提高their blog准确性的信息。 (免责声明:我在HyperTrack工作。)
答案 1 :(得分:0)
位置并不准确。即使使用GPS,它也不是。融合的位置可能会偏离数百米。如果你每隔几分钟静止不动一次,你就会得到一个真正关闭的阅读。有时候我从厨房走到浴室,它认为我走了四分之一英里。如果你看一下它返回的准确度,请记住你有2/3的机会在那个距离内。在那个半径范围内,你仍然有33%的可能无处可去。
您必须接受不准确的行为。你可以做一些想法
1)忽略所有更新,除非它们至少行进一些最小距离。添加所有这些少量将迅速增加许多不准确性。 2)在接受新位置之前,要求在新位置附近至少进行2次更新。
但如果您使用网络位置进行短暂动作,那么您将会遇到困难时期。
答案 2 :(得分:0)
转到设置 - >位置 - >模式。 并确保模式设置为仅设备。 这将停止跳转