当我长时间(比如过了一晚)未打开高德地图的时候,定位经常需要分钟级别( 1 分钟多),才会有一个大概的定位(精度 100m 室内),在此(大概的定位)之前会定位到我住的地方(距离公司大概 2km )。
发现高德会请求 CHANGE_WIFI_STATE,如果给这个权限,高德则会在比较快的时间内(通常 5s 左右)获取到一个大概的定位。
在比较快的时间内(通常 5s 左右)会有一个很高精度的定位(精度应该在 10m 室内 同样位置),但是高德地图无论开多久,定位精度都在 100m。
通过 appops 可以看到 maps 只使用了 Location 与 Storage 权限,并未请求 CHANGE_WIFI_STATE 这个权限。
为什么高德地图的定位耗时与精度会和 maps 差这么多?
今天在又遇到一些问题后,重新看了一下是为啥,通过对比同事的等于7之后,发现高德其实是在扫描周边的wifi列表,所以会用到CHANGE_WIFI_STATE这个权限,但是吧 scanning wifi在Android里面应该是Security&location里面的东西了。
为啥Google Maps会又快又准呢?因为它用了FINE_LOCATION,但是高德没有。
今天重新看文档时发现
Android 9:
A successful call to WifiManager.startScan() requires all of the following conditions to be met:
高德请求 CHANGE_WIFI_STATE
这个权限是符合标准的。
被长时间的摧残后,我猜测,高德定位主要依赖wifi/基站这类设备信息,而不是GPS这种。
1
opengps 2019-04-30 16:03:30 +08:00 via Android
跟 GPS 搜星数,wifi 参照量,基站信息都有关系
|
2
azh7138m OP @opengps 按照国内用户量,amap 的 WiFi 信息比 maps 的要多很多的吧
问题是为啥 maps 精度和速度都会明显好于 amap ? |
3
opengps 2019-04-30 16:21:17 +08:00
你可能忽略了一个重炮武器:高精度的 IP 定位,从这个角度讲,google 的能力有多强
虽然已经不对外提供,但是不代表他们自己会放弃这么好的利器不用 |
4
opengps 2019-04-30 16:22:17 +08:00
确认一下:你说的 maps 是 google maps 吧?
|
7
xuhaotian 2019-04-30 17:17:38 +08:00
google play services 呢?应该会提供信息给 maps 吧
|
8
xuddk727 2019-04-30 17:26:25 +08:00
不知道 1#搜星是什么原因得出的结论,可否解释一下?难道说 GMAP 有动用非民用的频段或者星定位?
|
9
ijse 2019-04-30 17:48:03 +08:00
北京,iPhone X max, 用高德 App 导航,每次经过 天桥 都会提示 GPS 信号弱。。
|
10
LuGew 2019-04-30 17:56:48 +08:00 via Android
|
11
opengps 2019-04-30 17:57:10 +08:00 1
@xuddk727 别想远了,我的意思是 google 可以第一步先不实用 gps 定位。
google 首先需要可以动用高精度 ip 定位能力,犯不着第一步就调用 gps 模块工作起来。gps 定位方式的缺点:又慢又费电又得请求授权有得看搜星数量还得系统服务支持 |
12
opengps 2019-04-30 17:59:56 +08:00
还有个别的因素:不同手机的位置服务提供方不同,有些手机直接是高德提供的,那么高德地图调用起来可能就会占有优势
|
13
freedomshi 2019-04-30 19:58:33 +08:00
了解一下 GPS 工作原理,你就知道 5S GPS 定位是不可能的。
所以,高德这种情况正常,google 用了另外的机制实现混合定位(这是另外一个课题)。 |
14
azh7138m OP @freedomshi 僵硬,高德不是专门做这个的公司吗,为啥会和 maps 差的这么多。
|
16
Jirajine 2019-07-08 21:45:58 +08:00 via Android
定位最好设为 device only。 其他所有电话数据,WiFi,蓝牙相关的权限都不要给。这种情况室内一般定不了位,ip 并不管用,尤其是国内常年使用代理的情况下。
|
18
opengps 2019-07-08 22:45:38 +08:00 via Android
楼主买铜币把帖子推到置顶的?
|