Android 使用融合位置api在位置上跳转

Android 使用融合位置api在位置上跳转,android,fusedlocationproviderapi,Android,Fusedlocationproviderapi,我正在跟踪骑手的位置(自行车骑手),并计算他每节课的总行驶距离。我只使用了融合定位api(没有GPS)。有时我会在位置上跳跃,由于这些跳跃会增加额外的距离,因此会导致整体错误的距离。请帮我找出这些错误的纬度和经度。有什么好的过滤器可以在Android中轻松实现,或者有什么好的方法可以实现吗?位置不准确。即使有GPS,也不是。熔合位置可偏离数百米。如果你每隔几分钟就站着不动,你就会得到一个非常棒的读数。有时我从厨房走到浴室,它会认为我已经走了四分之一英里了。如果你看看它返回的准确度,记住有2/3的

我正在跟踪骑手的位置(自行车骑手),并计算他每节课的总行驶距离。我只使用了融合定位api(没有GPS)。有时我会在位置上跳跃,由于这些跳跃会增加额外的距离,因此会导致整体错误的距离。请帮我找出这些错误的纬度和经度。有什么好的过滤器可以在Android中轻松实现,或者有什么好的方法可以实现吗?

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

你将不得不接受错误。不过,你可以提出一些想法

1) 忽略所有更新,除非它们至少移动一段最小距离。加上所有这些小量,很快就会增加很多不准确的地方。 2) 在接受新位置之前,在新位置附近至少需要2次更新


但是,如果你使用网络定位进行短距离移动,你将很难做到这一点。

进入设置->定位->模式。 并确保模式设置为“仅设备”。
这将停止跳跃

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

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

  • 使用卡尔曼滤波器平滑位置数据-请参阅

  • 使用谷歌地图快速上路,或者


  • 如果您正在寻找提供准确位置数据和距离测量的端到端解决方案,也可以尝试针对Android或iOS的HyperTrack SDK。您可以阅读有关它们如何过滤位置以提高定位精度的信息。(免责声明:我在工作。)

    你做了什么?请至少添加一个代码片段。我每30秒请求一次位置更新,并在总行程中得到大约1-1.5公里的错误。对此我并不感到惊讶。FusedProvider称之为“街区准确性”是有原因的——他们希望它能在一个街区以内。另一方面,如果你站着不动,它会在你的一个区块内或多或少随机地给你一些点。阅读关于使用卡尔曼滤波器的内容,但我不知道如何在我的Android代码中实现这一点。如果有人能帮助我在当前纬度、经度、精度、时间和变化的纬度、位置上的经度发生变化的情况下实现卡尔曼滤波,那就太好了。