android - LocationManager 与 Google Maps API 的准确性

标签 android google-maps gps

我一直在使用 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/

相关文章:

android - 在gradle中更改apk文件名

android - 在应用程序中解压缩 .zip 文件 |加速器 |钛

android - 不同计算机上的谷歌地图 v2 API key

google-maps - 给定半径内的周边城镇列表

android - 谷歌地图崩溃和内存使用

python - 在 Python 中从 csv 创建 kml

android - Android Activity 的三角形按钮

java - LinkedHashSet 不主要插入顺序吗?

android - 如何在从另一个 Activity 调用一个 Activity 时延迟一些?

android - 在模拟器中启动应用程序时获取 GPS 位置