Android 谷歌地图比LocationManager更快获得GPS定位!为什么?

Android 谷歌地图比LocationManager更快获得GPS定位!为什么?,android,google-maps,gps,Android,Google Maps,Gps,设置 手机设置为仅GPS。网络未启用 已实施LocationManager.RequestLocationUpdate以获得位置修复。经过长时间的不活动(如过夜)后,LocationManager需要3分钟以上才能获得修复。后续更新相当快(比如5-10秒) 如果我先打开谷歌地图,它会在不到1分钟内通过GPS获取我的位置 为什么谷歌地图在启动全球定位系统时要快得多 请注意: 我知道如果我启用网络提供商,我可以加快定位速度。但这不是问题所在。这里的问题是:如果只使用GPS,GMAP有什么不同呢?你的

设置

手机设置为仅GPS。网络未启用

已实施
LocationManager.RequestLocationUpdate
以获得位置修复。经过长时间的不活动(如过夜)后,LocationManager需要3分钟以上才能获得修复。后续更新相当快(比如5-10秒)

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

为什么谷歌地图在启动全球定位系统时要快得多

请注意:


我知道如果我启用网络提供商,我可以加快定位速度。但这不是问题所在。这里的问题是:如果只使用GPS,GMAP有什么不同呢?

你的答案在这里

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

每次运行启用GPS和WiFi的Google Maps或Navigation时,如果您的设备能够获得良好的GPS定位,则当前可见的WLAN网络和您当前的位置(GPS定位)将上载到Google以构建和更新数据库。这种技术有时被称为众包。因此,每个安卓设备都充当数据采集器


由于大多数接入点在其位置上是静态的,仅覆盖一小部分区域(覆盖半径约为100米),因此它们是无GPS的良好定位的理想锚。

“仅使用GPS的GMAP有什么不同?”--谷歌地图是一个专有应用程序。虽然我们被告知它使用Play Services SDK的位置API,但它可能不会。要了解谷歌地图是如何实现的,唯一的办法就是在谷歌找到一份工作并询问他们。