为什么Android 定位SDK获取不到定位的速度[getSpeed()]、角度[getBearing()]、海拔[getAltitude()]?

速度、角度和海拔数据来源自哪里?

精准的速度(Speed)、角度(Bearing)、海拔(Altitude)数据来自设备GPS模块,也就是当GPS模块正常工作情况下,且设备在移动时会返回以上三种数据。

所以当以上三种数据返回负数说明GPS状态现在是不太好的,无法准确计算结果。如果返回0意味着GPS状态可用,但设备没有移动。

为何高精度定位模式不能每次都返回这三项数据?

在高精度定位模式下会采用GPS定位混合网络定位的方式。开启持续高精度定位,如果此时GPS模块没有正常工作是无法正常返回角度、速度、海拔数据的,但网络定位生效,可以有效的返回经纬度信息。

如果您需要依赖速度(Speed)、角度(Bearing)、海拔(Altitude)三种数据做业务上的判断,您可以采用仅设备定位模式。仅设备定位模式会完全依赖GPS定位。

但仅设备定位模式只能在室外环境生效,这是由于GPS模块只有在开阔场所才可以有效的连接卫星计算位置,这点需要您注意。

自Android 定位 SDK V3.1.0版本开始,AMapLocationClientOption会有这样一个接口:setSensorEnable(boolean sensorEnable);这个接口控制是否使用设备传感器,默认关闭,可以打开。当上述接口被设置为true后,定位的Client将会采用设备传感器计算海拔,角度和速度。意味着高精度定位模式下也可以返回速度、角度、海拔数据。

如以上内容仍未解决您的问题,请创建工单
返回顶部 示例中心 常见问题 智能客服 公众号
二维码