为什么FusedLocationProviderApi永远不会报告精度超过10米?这记录了吗?

时间:2018-03-14 23:28:58

标签: android locationmanager fusedlocationproviderapi

直接使用LocationManager的数据收集应用已更新为使用FusedLocationProviderApi。使用LocationManager,大多数设备在收集位置时可以快速报告5米或更高的准确度。使用FusedLocationProviderApi,报告的最佳准确度为10米。

我刚刚安装了一个位置演示应用,并看到了相同的行为(https://github.com/will-quast/android-location-demo)。在融合位置活动中,如果我只显示GPS位置,精度会随着我更好地观察天空而变化,并且可以降至2米。如果我只显示融合,我会得到LocationManager报告的相同点。这是有道理的 - 我将Android设置为仅将GPS用于位置,并将优先级设置为PRIORITY_HIGH_ACCURACY,因此我希望这两个点始终相同。但是融合的提供商所表现出的最佳准确度是10米。

为什么融合提供商从未报告过低于10米的准确度?这是否记录在某处?有什么方法可以解决这个问题吗?或者当需要准确感时,LocationManager是否总是被使用?

FusedLocationProviderClient目前不是一个选项,因为它需要更新Google Play,而且此应用适用于Google Play更新过于庞大的资源受限区域。 知道它是否报告低于10米的准确度仍然是有用的。如果Android设置设置为仅使用GPS,它也绝不会报告低于10米的准确度。

编辑4/9 - 相关问题:

2 个答案:

答案 0 :(得分:1)

没有。这是最好的努力。不保证。

如果你有一个好的设备,并且在一个拥有大量Android用户的位置。 (例如,SSID数据库将变得更加准确),它可以达到2-3米的精度。

否则,混合来自不同来源的位置信息将具有更大的方差,并导致更低的准确度。

e.g。 来源A准确度为5米。 源B精度为15米。

单独使用Source A当然准确度为5m。 但是如果混合A和B,那么精度当然将> = 5m。 (考虑添加噪音来清理数据)

答案 1 :(得分:0)

已确认这是Google Play服务错误on the Google issue tracker。 Play Services 13.4.0预计将允许精度降低到3m的修复程序。目前尚不清楚为什么将其上限限制为3m,而不是使用原始位置来源报告的精度。