本文主要是介绍为什么获取不到定位的速度[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将会采用设备传感器计算海拔,角度和速度。意味着高精度定位模式下也可以返回速度、角度、海拔数据。
这篇关于为什么获取不到定位的速度[getSpeed()]、角度[getBearing()]、海拔[getAltitude()]?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!