即使PRIORITY_HIGH_ACCURACY也会提供非常低精度的位置更新

时间:2017-09-13 09:13:15

标签: android gps fusedlocationproviderapi android-fusedlocation google-location-services

我使用FusedLocationAPI获得高精度的位置更新(2秒更新间隔和5秒最快间隔)。它大部分时间都可以正常工作。但是,有时它会给出1200米的准确度。

我明白,一开始它就会发生。但是,我遇到的问题是,我得到了一段时间的更新(约20米准确度)更新,然后突然切换到〜1200米精度。

如何在Fused API中发生这种情况?

2 个答案:

答案 0 :(得分:2)

有时它会发生。此外,错误的位置修复可以连续5分钟到达。 为了尝试过滤此类坐标,我使用了Location Strategies文章中描述的方法(请参阅维护当前最佳估算值一节)。

catch

它专为与标准Android Location API一起使用而设计,但它确实有效。我只是做了一些修正,因为所有修复程序都有相同的提供程序。它允许我过滤大约30%的“坏”位置修复。

答案 1 :(得分:0)

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

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

  1. 使用卡尔曼滤波器平滑位置数据 - 请参阅tutorial
  2. 使用Google地图snap-to-roads APIOSRM match service
  3. 进入道路

    如果您正在寻找能够提供准确位置数据和距离测量的端到端解决方案,您还可以尝试使用适用于Android或iOS的HyperTrack SDK。您可以阅读有关如何过滤位置以提高their blog准确性的信息。 (免责声明:我在HyperTrack工作。)