安卓融合定位提供程序失效

7
我已经测试了几周安卓的新位置API。总的来说,它们运行得相当不错,然而,新的位置提供程序经常失去方向。
具体来说,我基于接收位置更新示例进行了实验。它能够正常工作,并且可以按预期接收到位置更新。
问题似乎出在融合提供程序本身上。在某些区域(特别是在我的家附近),它完全迷失了方向。它会突然认为我离实际位置几公里远。在我工作的地方(一个更繁华的地区),它更加精确,在平衡模式下始终保持在我实际所在位置附近。
我尝试了很多次修复这个问题,包括在怀疑它错误时切换到PRIORITY_HIGH_ACCURACY,或使用旧的LocationManager尝试获取GPS定位以确定我的真实位置。但是没有什么方法能够帮助我解决这个问题。我怀疑谷歌对我家附近某些移动基站或WiFi热点的位置信息有误,当它连接到某些基站时,会突然跳跃数公里之外的真实位置。这非常令人恼火,也会干扰Geofence API的使用。请问我该如何解决这个问题?

切换到旧的LocationManager和GPS并不能帮助解决问题,您是什么意思? - paul
抱歉,我没有收到您的评论通知。在不同的命名空间中有另一个LocationManager:http://developer.android.com/reference/android/location/LocationManager.html - D2TheC
2
哦,对了,GPS总是解决问题的。看起来错误的位置与周围基站的不良读数有关。 - D2TheC
请参见 https://code.google.com/p/android/issues/detail?id=66160。 - Kurovsky
2个回答

1

你能忽略不准确的位置更新吗?我想这段代码是在2013年的Google IO上发布的,所以可能仍然存在一些错误。

(我也遇到了同样的问题。在农村地区,Fused Location提供程序给我的位置随处乱跑)


抱歉,我不能。它报告高精度,例如,它会告诉我它的精度为11米但实际偏差为1.5公里。然后突然又变得准确了。现在我只需要仔细核对所有结果。我希望随着时间的推移它们可以改进。在人口密集地区,它也要准确得多。我认为这里某些地方的移动通讯塔信息可能已经过时了。 - D2TheC
仅供参考:我实际上忘记授予我的应用程序“android.permission.ACCESS_FINE_LOCATION”权限。融合位置提供程序仍然可以工作,但只会提供不准确的位置。 - Glenn Bech
是的,我绝对拥有精确和粗略定位。很多时候,融合定位提供程序在精度方面非常惊人,而无需使用GPS。我发现这在城市中尤其如此,因为GPS有时会感到困惑。 - D2TheC

0

有时会出现一些关于某些WIFI AP的错误数据,这些问题通常会在一段时间后自行解决。你可以从返回的准确度中找到发生问题的线索。如果准确度很高(数百米),那么说明融合位置提供程序正在使用基站位置。这可能意味着你所在的地方没有太多的AP,只能偶尔获取wifi位置(或者偶尔无法获取wifi位置)。随着算法的改进,FLP应该会逐渐避免这些跳跃。

如果你得到的错误位置具有较小的准确度(约30米),那么说明它是一个wifi位置,而错误的AP数据库信息可能是问题的原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接