位置提供程序 - 检测高度不准确/不正确的位置



所以我知道你可以使用 getAccuracy(( 来查找位置的准确性,但是如果你为精度设置了一个截止点,你能防止记录其中一个位置,它与用户所在的位置非常不同吗?就像用户静止一样,大多数位置更新都集中在他的区域周围,但偶尔位置提供商会打嗝并将位置报告为数英里外的某个地方。

这些位置是否只是在getAccuracy中显示为"准确"?或者它们会出现一些疯狂的高 getAccuracy(( 结果?编程一个截止点很容易,但我想知道我是否必须编写额外的检查,例如如果一个位置与以前的位置差异太大,那么它是一个任性的。

准确性不是这里唯一的决定因素。您还应该查看该位置的年龄,以及提供商(Google Play服务位置不会告诉您,但原始Android LocationManager会告诉您(。

事实上,谷歌有一些有用的示例代码来维持当前的最佳估计。我使用了它的变体来过滤掉传入位置数据中的狂野跳跃。基本上,如果一个位置没有通过这个门,甚至不会被报告。

最新更新