我一直在使用LocationManager / LocationClient,由于无法使用GPS,因此无法给出高度准确的结果。根据位置服务设置为ON,我得到的位置不是很准确。 但是对于像优步,TaxiForSure这样的应用程序而不使用GPS,他们能够高精度地在Google地图上绘制我的位置。
Google Maps API中有一个秘密的问题吗?我的意思是Google Maps API做的不仅仅是LocationManager / LocationClient?
答案 0 :(得分:2)
Google已经构建了一个数据库,可以将WLAN BSSID链接到地理位置。 BSSID类似于由该接入点广播的接入点的MAC地址。因此,它是公众可见的"如果启用了BSSID广播,这是大多数接入点的默认设置。 BSSID作为IP堆栈在较低层运行,您甚至不必连接到接入点来接收这些广播。
每次使用已启用的GPS和WiFi运行Google地图或导航时,如果您的设备能够获得良好的GPS修复,则当前可见的WLAN网络和您当前的位置(GPS修复)会上传到Google进行构建和更新数据库。这种技术有时被称为众包。因此,每个Android设备都充当数据收集器。
由于大多数接入点在其位置上是静态的并且仅覆盖小区域 - 覆盖半径大约为100米 - 它们是没有GPS的良好定位的理想锚点。
另外,Google StreetView汽车还带有GPS和Wifi,用于相同目的