如何在Android中测量位置准确度?

Joh*_*mer 93 android location

有谁知道getAccuracy()返回的准确度测量的正确解释?例如,他们计算如下:

  • 圆形误差概率(意思是,如果我理解正确,半径为50%置信圆)?

  • 半径95%置信圈?

  • 别的什么?

此外,使用的实际计算是什么以及我们可以依赖它们多少?它取决于位置估计的来源(GPS与网络)吗?

非常感谢您给我的任何建议.

kar*_*arl 63

为了回答问题的一部分,该数字the radius of 68% confidence,意味着真实位置在测量点的半径内有68%的可能性以米为单位.假设错误是正常分布的(正如文档所说,并不一定是真的),这意味着这是一个标准偏差.例如,如果Location.getAccuracy返回10,那么设备的真实位置有68%的可能性在报告的坐标的10米范围内.

http://developer.android.com/reference/android/location/Location.html#getAccuracy()

  • @AidenStrydom,没有.如果准确度返回1000,则意味着真实位置在所提供位置的1000米范围内的可能性为68%. (11认同)

小智 42

当您的电池寿命有限以及建筑物和许多大型建筑物等区域没有GPS信号时,该位置是一项棘手的任务.但Android使其变得更加容易.当您请求位置时,您只需指定所需的准确度.

如果您指定accuracy一个示例*100 meters*,Android会尝试获取该位置,如果它可以获得70米精度的位置,它会返回给您,但是如果Android可以获得精度高于100的位置米,你的申请将等待,直到有一个如此准确的位置,将不会收到任何东西.

通常Android会首先获取Cell ID,然后将其发送到Google服务器,后者会映射此类Cell ID,并且服务器将返回经度和纬度,其精度低于1000米的示例.到目前为止,Android还将尝试查看该区域内的所有WiFi网络,以及将有关它们的信息发送到Google服务器,如果可能,Google服务器将返回一个具有更高准确度的新位置,例如800米.

到这时GPS将开启.GPS设备从冷启动起至少需要30秒才能获得修复,因此如果可以获得修复,它将返回纬度和经度,但同样具有精确度,这将是100米示例中的最高精度.GPS工作的时间越长,您获得的准确度就越高.

重要提示:前两种方法需要互联网连接.如果没有数据连接,则必须等待GPS,但如果设备位于建筑物内,则可能无法获得位置.

  • 这并没有真正回答"100m准确度"的含义. (14认同)
  • 什么API可以指定100米的准确度?我看到ACCURACY_COARSE,ACCURACY_FINE,ACCURACY_HIGH,ACCURACY_LOW,ACCURACY_MEDIUM的标准,但不是100米. (9认同)
  • @vendor请你说明你从中得到这条信息的参考.你的回答帮助我理解它是如何工作的,谢谢. (2认同)

Jan*_*usz 17

关于getAccuracy的文档说它以米为单位返回精度.我猜这意味着,如果你得到一个60的返回值,你就是在一个圆周的某个地方,在所提供的位置周围有一个60米半径.


par*_*cle 11

从快速浏览Android源代码可以看出,这取决于设备的硬件以及它选择返回的值.

GpsLocationProvider.java文件有一个reportLocation方法,该方法由本机代码调用,并作为值传递精度.因此,至少在框架中似乎没有进行任何计算.

该QCOM(我认为这是高通)GPS混帐回购协议被通过hor_unc_circular,这似乎暗示,至少,实现使用CER的准确性参数.