【问题标题】:What does Android's horizontalAccuracy for GPS really mean?Android 的 GPS 水平准确度到底是什么意思?
【发布时间】:2019-06-06 16:57:15
【问题描述】:

我无法弄清楚horizontalAccuracy 在 Android 上的含义。文档说如下:

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

听起来好像他们在暗示概率分布在半径上是高斯分布(从现在起称为 r),因此 68% 的数据在均值的 1 个标准差以内。问题是,这是不可能的,因为:

  1. r 只能是正数

  2. 应该是 P(r=0)=0 的情况,因为 r=0 处的区域非常小,因此存在的概率也很小

听起来分布是一个二维高斯分布,也就是说是一个像exp(-(x^2 + y^2) / sigma^2)这样的函数。但是这个函数在半径 r 中变成了Rayleigh distribution,而不是高斯函数。

因此,我看到了 4 种不同的可能性:

    1234563
  1. 准确度阈值是瑞利分布包含 68% 数据的点,因此它不是标准偏差,因为此分布不是高斯分布 - 这将同意与 Android 开发人员所说的一样,但这似乎是一种非常奇怪和任意的准确度衡量标准,因此对我来说似乎不太可能

  2. 准确度阈值是瑞利分布的标准差,因此不包含 68% 的数据 - 这可能是有道理的,因为标准差是准确度的常用度量,但它不同意 Android 开发人员所说的,因为它不包含 68% 的数据。这似乎有可能,但我假设 Google 员工犯了一些非常基本的错误,然后多年来完全没有注意到 - 这似乎不太可能

  3. 准确率阈值其实就是x,y中二维高斯的标准差(即方程中的sigma exp( -(x^2 + y^2) / sigma^2)),因此在 x,y 中确实包含 68% 的点,但在 r 中不包含。在这种情况下,Android 开发人员会错误地假设 r 中的标准差与 x,y 中的标准差相同——再一次,这可能是有道理的,但前提是我们假设整个 Google 团队都在犯相当基本的数学错误,然后多年来一直被社区忽视。同样,我有点不愿意假设这一点。

我花了一段时间浏览文档和网络,但收效甚微。 我已经看到了不同人提供的选项 1-4 中的每一个,但我发现所有这些选项都令人难以置信,并且看不出有任何理由选择其中一个。

有什么想法可能有意义吗?这四个选项的任何潜在替代方案?我可以查看任何资源吗?关于与 Google 讨论此问题的任何建议?我从其他程序员那里听说,接触到开发团队真的很困难

【问题讨论】:

  • “我可以浏览任何资源吗?” -- 搜索与 GPS 接收器一起实际工作的核心操作系统代码的源代码,看看您是否找到任何有用的信息。 “关于与谷歌讨论这件事有什么建议吗?” -- 参加 Google I|O 并向高天祈祷,你会偶然发现可以引导你走向正确方向的人。如果可以用一只手来数出能回答您问题的 Google 工程师的数量,我不会感到惊讶。
  • 您确实了解您正在查看 Google/Android 框架 API 的准确性定义,这对于具有 ACCESS_COARSE_LOCATION 权限的 WiFi 或基于蜂窝塔的位置也是有效的。此后,Google 已从 Android 框架 Location/NetworkProvider 转向他们自己的 Google Play 服务 API,称为 FusedLocation。

标签: java android gps location horizontal-accuracy


【解决方案1】:

经过几次测量,我怀疑正确答案是

  1. 准确度阈值是瑞利分布包含 68% 数据的点

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-07
    • 2017-07-20
    • 2014-09-23
    • 2014-07-25
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多