设置
移动设置仅限GPS。网络未启用。
已实施LocationManager.requestLocationUpdates
以获取位置修复。经过长时间的不活动(如一夜之间),需要使用LocationManager超过3分钟才能获得修复。后续更新速度相当快(例如5-10秒)。
如果我首先打开谷歌地图,它会在1分钟内通过GPS获取我的位置。
为什么Google地图在启动GPS时速度要快得多?
请注意:
我知道如果启用NETWORK_PROVIDER,我可以加快位置修复。但这不是问题。这里的问题是:只使用GPS,GMaps在做什么不同?
答案 0 :(得分:1)
你的答案就在这里!!
谷歌和Apple和Skyhook等其他公司建立了一个数据库,将WLAN BSSID链接到一个地理位置。 BSSID类似于由该接入点广播的接入点的MAC地址。因此,它是公众可见的"如果启用了BSSID广播,这是大多数接入点的默认设置。 BSSID作为IP堆栈在较低层运行,您甚至不必连接到接入点来接收这些广播。
每次使用已启用的GPS和WiFi运行Google地图或导航时,如果您的设备能够获得良好的GPS修复,则当前可见的WLAN网络和您当前的位置(GPS修复)会上传到Google进行构建和更新数据库。这种技术有时被称为众包。因此,每个Android设备都充当数据收集器。
由于大多数接入点在其位置上是静态的并且仅覆盖小区域 - 覆盖半径大约为100米 - 它们是没有GPS的良好定位的理想锚点。