Google地图比LocationManager更快地获得GPS修复!为什么?

时间:2015-02-25 12:11:25

标签: android google-maps gps

设置

移动设置仅限GPS。网络未启用。

已实施LocationManager.requestLocationUpdates以获取位置修复。经过长时间的不活动(如一夜之间),需要使用LocationManager超过3分钟才能获得修复。后续更新速度相当快(例如5-10秒)。

如果我首先打开谷歌地图,它会在1分钟内通过GPS获取我的位置。

为什么Google地图在启动GPS时速度要快得多?

请注意:

我知道如果启用NETWORK_PROVIDER,我可以加快位置修复。但这不是问题。这里的问题是:只使用GPS,GMaps在做什么不同?

1 个答案:

答案 0 :(得分:1)

你的答案就在这里!!

谷歌和Apple和Skyhook等其他公司建立了一个数据库,将WLAN BSSID链接到一个地理位置。 BSSID类似于由该接入点广播的接入点的MAC地址。因此,它是公众可见的"如果启用了BSSID广播,这是大多数接入点的默认设置。 BSSID作为IP堆栈在较低层运行,您甚至不必连接到接入点来接收这些广播。

每次使用已启用的GPS和WiFi运行Google地图或导航时,如果您的设备能够获得良好的GPS修复,则当前可见的WLAN网络和您当前的位置(GPS修复)会上传到Google进行构建和更新数据库。这种技术有时被称为众包。因此,每个Android设备都充当数据收集器。

由于大多数接入点在其位置上是静态的并且仅覆盖小区域 - 覆盖半径大约为100米 - 它们是没有GPS的良好定位的理想锚点。