Android Gnss信息获取 & 绘制卫星图

Posted Alex_MaHao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Gnss信息获取 & 绘制卫星图相关的知识,希望对你有一定的参考价值。

Android GNSS基本信息获取   android 中GNSS为GPS定位中包含的原始定位信息,主要包含三个接口(api >= 24),提供不同信息:   // GNSS处理后信息,包含一些常用信息 LocationManager.registerGnssStatusCallback()  ==> GNSSStatus   // GNSS测量原始信息,主要包括卫星时间相关,载波频率,信噪比等,更全面的信息 LocationManager.registerGnssMeasurementsCallback() => 回调结果 :GnssMeasurementsEvent & status   // 导航电文信息,具体内部信息未确定 LocationManager.registerGnssNavigationMessageCallback() => GnssNavigationMessage & status     其中通过registerGnssStatusCallback接口获取的信息绘制卫星云图,该接口主要信息如下:  
接口名 解释 备注
getAzimuthDegrees 获取方位角 卫星在地球的投影和手机位置的连线与手机位置正北方向的夹角。 绘制云图关键信息
getCn0DbHz 载波噪声比 类似信号强度,值越大越好, 其中大于40dB.Hz的一般可以视为强信号,小于28dB.Hz的则被视为弱信号
getConstellationType 星座类型 不同国家的卫星系统标识
getElevationDegrees 俯仰角 卫星在地球的投影和手机位置的连线与卫星真实位置和手机位置连线的夹角。绘制云图的关键信息
getSvid 卫星标识 每个卫星系统内的卫星id
hasAlmanacData 是否具有年历数据  
hasEphemerisData 是否有星历数据  
usedInFix 是否可用于解算位置  
  基于GNSS信息绘制卫星云图     卫星云图首先是一个圆心,和一个确定半径所画的最大圆。该半径为俯仰角90°时所对应的位置,之后分别取30°和60° / 90° * 半径 得出对应度数下的圆。这样云图的底图就确定了。   其次根据GNSS信息确定卫星的位置:
  • 俯仰角:该取值0°~90°,根据度数不同,确定落在不同的圆周上。
  • 方位角:确定落在圆的哪条半径上
  根据半径和圆周的交叉点,即为卫星的位置   除了如上关注点之外,因为方位角是始终是基于正北方所在位置计算出的角度,如果想所见即所得,即屏幕上展示的位置,就是我们此刻对应卫星在天空上的位置,需要引入手机本身的朝向,即手机本身的朝向和正北方向的夹角,在结合方位角,才能在手机上绘制出真正的位置。这一个地方可以结合一些指南针相关的逻辑。   具体源码就不粘贴了,具体见资源文件: https://download.csdn.net/download/lisdye2/16671566,需要的可以下载。

以上是关于Android Gnss信息获取 & 绘制卫星图的主要内容,如果未能解决你的问题,请参考以下文章

Android Gnss信息获取 & 绘制卫星图

Android GNSS 可视卫星星空图/卫星天顶图 原理及画法介绍

Android GNSS 可视卫星星空图/卫星天顶图 原理及画法介绍

Android GNSS 可视卫星星空图/卫星天顶图 原理及画法介绍

Android 获取星历数据和 gnss 测量值

Android GNSS原始观测值的含义及伪距计算