我正在编写我的第一个Android应用程序,并利用Android位置管理器获取GPS读数。我对我得到的准确度读数有点困惑。例如:
我用胶带在两点之间测量出1000线性英尺。
站在A点时,我开始了位置管理器更新请求,直到我收到+/- 4英尺的精度。
然后我点击了应用中的按钮以保存该特定位置(私有变体)。
当位置经理继续投票时,我走了一条线,直到我到达B点。
在这里,我等待+/- 4英尺的准确度读数。
然后我点击了另一个按钮,该按钮占据了该位置并在两点之间进行了距离测量,即:
double distance = startLocation.distanceTo(endLocation);
返回的距离测量值为1000.20英尺。
我意识到从GPS返回的精度测量值不断波动,但我预计距离测量至少会反映这一点。与准确度读数相比,我对它的精度感到惊讶。
所以我的问题是我应该相信距离测量的值,还是考虑从GPS返回的精度测量值?
答案 0 :(得分:0)
如果您查看Android位置的API参考,您会看到准确性读数的说明:
我们将准确度定义为68%置信度的半径。换句话说,如果 你画一个以这个位置为中心的圆圈经度和纬度, 并且半径等于精度,那么有68% 真实位置在圆圈内的概率。
在统计学术语中,假设位置误差是随机的 具有正态分布,因此68%置信圆代表 一个标准偏差。请注意,实际上,位置错误不会 总是遵循这样简单的分配。
此准确度估算仅涉及水平精度, 并且如果没有表明轴承,速度或高度的准确性 这些都包含在这个位置。
如果此位置没有准确性,则返回0.0。所有 LocationManager生成的位置包括准确性。
根据这篇文章,看起来getAccuracy和distanceTo()方法不会考虑彼此的测量。我会按照帖子中的建议查看GPS Benchmark应用程序,以获取特定硬件的更好信息。希望这会有所帮助!: