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

本文介绍了GPS模块如何提供速度、角度和海拔等数据,以及在高精度定位模式下可能遇到的问题。在某些情况下,GPS信号不佳可能导致数据不准确。建议在依赖这些数据进行业务判断时,考虑使用仅设备定位模式,或者启用设备传感器来增强数据获取。从Android V3.1.0 SDK开始,可通过设置接口获取速度、角度和海拔信息,即使在高精度模式下。
摘要由CSDN通过智能技术生成

亲测可用,若有疑问请私信

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

精准的速度(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将会采用设备传感器计算海拔,角度和速度。意味着高精度定位模式下也可以返回速度、角度、海拔数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值