我一直在使用 LocationManager/LocationClient,但显然由于无法使用 GPS,因此无法提供高度准确的结果。根据“位置服务”设置“打开”,我得到的位置不太准确。 但是,借助 Uber、TaxiForSure 等应用程序,无需使用 GPS,它们就能够在 Google map 上高精度地绘制我的位置。
那么 Google Maps API 有什么秘诀吗?我的意思是 Google Maps API 所做的不仅仅是 LocationManager/LocationClient 吗?
最佳答案
Google 建立了一个数据库,将 WLAN BSSID 链接到地理位置。 BSSID 类似于由该接入点广播的接入点的 MAC 地址。因此,如果启用 BSSID 广播(这是大多数接入点的默认设置),则它是“公共(public)可见的”。 BSSID 在 IP 堆栈的较低层上运行,您甚至不必连接到接入点即可接收这些广播。
每次您在启用了 GPS 和 WiFi 的情况下运行 Google map 或导航时,如果您的设备能够获得良好的 GPS 定位,当前可见的 WLAN 网络和您当前的位置(GPS 定位)都会上传到 Google 来构建和更新数据库。这种技术有时称为众包。因此,每个 Android 设备都充当数据收集器。
由于大多数接入点的位置都是静态的,并且仅覆盖很小的区域(覆盖半径约为 100m),因此它们是无需 GPS 即可进行良好定位的理想 anchor 。
此外,出于相同目的,Google 街景汽车还配备了 GPS 和 Wifi
关于android - LocationManager 与 Google Maps API 的准确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28315213/