3

我正在跟踪骑手的位置(骑自行车的人)并计算他每次骑行的总距离。我只使用了融合位置 API(没有 GPS)。有时我会在位置上跳跃,并且由于这些跳跃而增加了额外的距离,因此导致整体错误的距离。请帮助我找到这些错误的纬度和经度。是否有任何可以在 Android 中轻松实现的好的过滤器或任何好的方法?

4

3 回答 3

1

原始 GPS 数据的距离测量总是有噪声,因为基础数据通常不准确。这些跳跃是由于位置测量不准确造成的。为了实现准确的距离测量,您可能需要过滤数据中的噪声。

您可以探索的一些有用的过滤技术是:

  1. 使用卡尔曼滤波器平滑位置数据 - 参见教程

  2. 使用 Google maps snap-to-roads APIOSRM 匹配服务捕捉到道路。

如果您正在寻找能够提供准确位置数据和距离测量的端到端解决方案,您还可以尝试适用于 Android 或 iOS 的 HyperTrack SDK。您可以在他们的博客上了解他们如何过滤位置以提高准确性。(免责声明:我在HyperTrack工作。)

于 2017-09-14T08:08:19.770 回答
0

Go to Settings -> Location -> Mode. And make sure the mode is set to Device only. This will stops the jump

于 2017-09-14T07:38:00.363 回答
0

位置不准确。即使有 GPS 也不是。融合位置可以偏离数百米。如果你每隔几分钟就站着不动,你会得到一个真正偏离的读数。有时我从厨房走到浴室,它认为我已经走了四分之一英里。如果您查看它返回的准确性,请记住您有 2/3 的机会在该距离内。您仍然有 33% 的机会不在该半径范围内。

你将不得不接受不准确。你可以做一些想法

1) 忽略所有更新,除非它们至少行进一些最小距离。添加所有这些少量将很快增加很多不准确性。2)在接受新位置之前,需要在新位置附近至少进行 2 次更新。

但是,如果您使用网络位置进行短途移动 - 您将遇到困难。

于 2016-03-07T14:03:50.607 回答