我正在编写一个简单的Android应用程序来捕获用户的位置。
我正在使用FusedLocationAPI来提供位置。
mLocationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setInterval(5000)
.setFastestInterval(5000);
当用户按下按钮时,应用程序将首先检查最后的已知位置。如果这不到一分钟,并且具有< 50米,使用的位置。如果不是,则应用程序请求位置更新,直到收到准确度为< 50公尺。该应用程序然后停止请求更新,以帮助保留电池。
99%的情况下这种方法非常有效。然而,在测试中,出现了两个读取相同位置的情况,但报告的坐标之间的距离为110米。我试图了解原因。
阅读#1:在10:46拍摄,准确度为36米。
阅读#2:13:27拍摄,精确度为26米。
用户位于同一位置(约2米内)。我认为,由于它们在精度边缘的位置,这些点之间的距离最多只能为52米。我不知道为什么它是110米
我错过了一些明显的东西吗?
答案 0 :(得分:1)
这不是精确数字的意思。引用谷歌文档:
我们将准确度定义为68%置信度的半径。换句话说,如果 你画一个以这个位置为中心的经度和经度的圆圈, 并且半径等于精度,那么有68% 概率,真实位置在圆圈内。
在统计学术语中,假设位置误差是随机的 具有正态分布,因此68%置信圆代表 一个标准偏差。请注意,实际上,位置错误不会 总是遵循这样简单的分配。
http://developer.android.com/reference/android/location/Location.html#getAccuracy