有没有人知道getAccuracy()返回的准确度测量的正确解释?例如,他们计算如下:
循环错误概率(意思是,如果我理解正确,半径为50%置信圈)?
95%置信圆的半径?
别的什么?
此外,使用的实际计算是什么以及我们可以依赖它们多少?它取决于位置估计的来源(GPS与网络)吗?
非常感谢您给我的任何建议。
答案 0 :(得分:62)
要回答问题的一部分,数字为the radius of 68% confidence,
,这意味着真实位置在测量点的半径范围内有68%的可能性以米为单位。假设错误是正常分布的(正如文档所说,并不一定是真的),这意味着这是一个标准偏差。例如,如果Location.getAccuracy
返回10,那么设备的真实位置有68%的可能性在报告坐标的10米范围内。
http://developer.android.com/reference/android/location/Location.html#getAccuracy()
答案 1 :(得分: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,但如果设备位于建筑物内,则可能没有位置。
答案 2 :(得分:17)
getAccuracy上的文档说明它以米为单位返回准确度。 我猜这意味着,如果你得到一个60的返回值,你就是在一个半径为60米的圆圈中的某个位置。
答案 3 :(得分:11)
据我所知,从Android源代码快速浏览一下,这取决于设备的硬件以及它选择返回的价值。
GpsLocationProvider.java
文件有一个reportLocation
method,由本机代码调用,并将精度作为值传递。因此,至少在框架中似乎没有进行任何计算。
qcom(我相信是高通公司)GPS git repo is passing hor_unc_circular
参数的准确性,这似乎意味着,至少,该实施正在使用CER。
答案 4 :(得分:4)
如果在文档中引用它是准确性,则用户实际位置在QUOTED_LOCATION +/- ACCURACY内。因此,准确度定义了您可以期望用户所在的半径。文档没有说的是用户是否在半径范围内是多么可靠 - 标准是95%,所以我想这就是它。
答案 5 :(得分:1)
我知道你在概率方面要求一个明确的答案,但我认为这里有两件事需要考虑。首先,由提供商决定他们想要放入这个值,所以取决于提供商,这可能只是一个糟糕的猜测。其次,将此视为潜在的四舍五入问题可能会有所帮助。如果我试图根据多个输入计算您的位置,并且其中一些输入仅可用于一定数量的有效数字,则只能计算具有给定有效位数的位置。可以这样思考 - 什么是“约”一加一“约”一百。可能大约有一百,因为100的准确度可能小于1的大小。如果我突然说答案大约是101,那么我最终可能暗示一定程度的准确性不存在。但是,如果我确实指定了准确度,那么我可以说它是100加减10加1加减.1是101加减10.我得到的是这通常指的是95%置信水平(标准错误),但同样,所有这些都假设提供者理解统计数据并且不仅仅是猜测。