解释Android位置管理器结果

时间:2014-04-08 01:21:25

标签: android locationmanager

我正在编写我的第一个Android应用程序,并利用Android位置管理器获取GPS读数。我对我得到的准确度读数有点困惑。例如:

  1. 我用胶带在两点之间测量出1000线性英尺。

  2. 站在A点时,我开始了位置管理器更新请求,直到我收到+/- 4英尺的精度。

  3. 然后我点击了应用中的按钮以保存该特定位置(私有变体)。

  4. 当位置经理继续投票时,我走了一条线,直到我到达B点。

  5. 在这里,我等待+/- 4英尺的准确度读数。

  6. 然后我点击了另一个按钮,该按钮占据了该位置并在两点之间进行了距离测量,即:

    double distance = startLocation.distanceTo(endLocation);

  7. 返回的距离测量值为1000.20英尺。

  8. 我意识到从GPS返回的精度测量值不断波动,但我预计距离测量至少会反映这一点。与准确度读数相比,我对它的精度感到惊讶。

    所以我的问题是我应该相信距离测量的值,还是考虑从GPS返回的精度测量值?

1 个答案:

答案 0 :(得分:0)

如果您查看Android位置的API参考,您会看到准确性读数的说明:

  

我们将准确度定义为68%置信度的半径。换句话说,如果   你画一个以这个位置为中心的圆圈经度和纬度,   并且半径等于精度,那么有68%   真实位置在圆圈内的概率。

     

在统计学术语中,假设位置误差是随机的   具有正态分布,因此68%置信圆代表   一个标准偏差。请注意,实际上,位置错误不会   总是遵循这样简单的分配。

     

此准确度估算仅涉及水平精度,   并且如果没有表明轴承,速度或高度的准确性   这些都包含在这个位置。

     

如果此位置没有准确性,则返回0.0。所有   LocationManager生成的位置包括准确性。

根据这篇文章,看起来getAccuracy和distanceTo()方法不会考虑彼此的测量。我会按照帖子中的建议查看GPS Benchmark应用程序,以获取特定硬件的更好信息。希望这会有所帮助!:

Does Location getAccuracy take distanceTo() into Account?