Answers:
要回答问题的一部分,该数字the radius of 68% confidence,
意味着真实位置有68%的机会位于以米为单位的被测点的半径内。假设误差是正态分布的(正如文档所说,不一定是真的),这意味着这是一个标准偏差。例如,如果Location.getAccuracy
返回10,则设备的真实位置在所报告坐标的10米以内有68%的机会。
http://developer.android.com/reference/android/location/Location.html#getAccuracy()
当您的电池寿命有限,并且建筑物和建筑物很多的地方等地区都没有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工作的时间越长,您获得的精度就越高。
重要说明:前两种方法需要Internet连接。如果没有数据连接,则必须等待GPS,但是如果设备在建筑物中,则可能会找不到位置。
关于getAccuracy的文档说,它返回以米为单位的精度。我猜想这意味着如果您获得60的返回值,那么您将位于所提供位置周围半径60米的圆中。
据我一眼就可以看到Android源代码,这取决于设备的硬件以及它选择返回的值。
该GpsLocationProvider.java
文件有一个reportLocation
方法,该方法被本机代码调用,并以精度作为值传递。因此,似乎至少没有在框架中进行任何计算。
该QCOM(我认为这是高通)GPS混帐回购协议是路过的hor_unc_circular
,这似乎暗示,至少,实现使用CER的准确性参数。
我知道您是在要求概率方面的肯定答案,但我认为这里有两件事要考虑。
首先,由提供商决定要在此值中添加什么,因此取决于提供商,这可能是一个错误的猜测。
其次,将其视为潜在的舍入问题可能会有所帮助。如果我试图根据多个输入来计算您的位置,而其中一些输入仅对一定数量的有效数字可用,那么就只能用给定数量的有效数字来计算位置。
这样想吧-什么是“约”加“约”一百。大概是100,因为100的精度可能小于1的数量级。如果我突然说答案大约是101,那么我可能最终暗示了一个不存在的精度水平。但是,如果我实际指定了精度,那么我可以说它的100正负10加1正负.1是101正负10。我知道这通常是指类似95%的置信度(标准错误),但同样,所有人都假设提供者了解统计信息而不仅仅是猜测。