Android手机GNSS原始观测量

2016年5月,Google在 I/O 开发者会议上宣布,将为Android操作系统中的应用程序提供开放的API接口,以便获取原始的GNSS观测数据。在此之前,GNSS芯片组充当黑匣子,只能输出位置、速度、方位角等有限的卫星信息,在发布 Android 7.0 版本后,开发人员可以访问伪距,载波相位,多普勒测量和导航消息等。

本文提供了Android手机GNSS原始观测量的相关信息:

1、实测的Android手机GNSS原始观测量输出文件

2、Fix 和 Raw 格式说明

定位结果Fix,

1      Provider,                            提供者
2      Latitude,                            纬度
3      Longitude,                           经度
4      Altitude,                            海拔
5      Speed,                               速度
6      Accuracy,                            精度
7      (UTC)TimeInMs                        (UTC)时间

原始观测量Raw,

1      ElapsedRealtimeMillis,                                观测时刻,ms
2      TimeNanos,                                            GNSS 接收器内部硬件时钟的值(以纳秒为单位)
3      LeapSecond,                                           与时钟时间相关的闰秒
4      TimeUncertaintyNanos,                                 时钟的时间不确定性 (1-sigma),以纳秒为单位
5      FullBiasNanos,                                        GPS 接收器内的硬件时钟 getTimeNanos() 与自 1980 年 1 月 6 日以来的真实 GPS 时间之间的差(以纳秒为单位)
6      BiasNanos,                                            时钟的亚纳秒偏差
7      BiasUncertaintyNanos,                                 时钟的偏差不确定性 (1-sigma),以纳秒为单位
8      DriftNanosPerSecond,                                  时钟的漂移(以纳秒每秒为单位)
9      DriftUncertaintyNanosPerSecond,                       时钟的漂移不确定性 (1-sigma),以纳秒每秒为单位
10     HardwareClockDiscontinuityCount,                      硬件时钟不连续性的计数
11     Svid,                                                 卫星 ID
12     TimeOffsetNanos,                                      测量时的时间偏移(以纳秒为单位)
13     State,                                                表示卫星同步状态的整数
14     ReceivedSvTimeNanos,                                  在测量时间接收到的 GNSS 卫星时间,周内秒(以纳秒为单位)
15     ReceivedSvTimeUncertaintyNanos,                       接收到的 GNSS 时间的误差估计 (1-sigma),以纳秒为单位
16     Cn0DbHz,                                              载噪比
17     PseudorangeRateMetersPerSecond,                       观测时刻的伪距变化速率(以 m/s 为单位)
18     PseudorangeRateUncertaintyMetersPerSecond,            伪距变化速率的不确定性 (1-sigma),以 m/s 为单位。
19     AccumulatedDeltaRangeState,                           载波相位ADR测量的状态(0:状态未知  1:观测正常  2:重置通道  3:发生周跳)
20     AccumulatedDeltaRangeMeters,                          获取自上次通道重置以来的载波相位观测值的累计,单位为米
21     AccumulatedDeltaRangeUncertaintyMeters,               累计的载波相位的不确定度,以米为单位
22     CarrierFrequencyHz,                                   载波频率
23     CarrierCycles,                                        卫星和接收器之间的完整载波周期数。这些数据集中为空。
24     CarrierPhase,                                         接收器检测到的射频相位。这些数据集中为空。
25     CarrierPhaseUncertainty,                              载波相位的不确定性(1-sigma)。这些数据集中为空。
26     MultipathIndicator,                                   “多路径”状态标志(1:有多路径  2:无多路径  0:未知)
27     SnrInDb,                                              (后相关和积分)信噪比 (SNR),以 dB 为单位。
28     ConstellationType,                                    GNSS 星座类型(1:gps  2:SBAS  3:glonass  4:qzss  5:bd  6:galileo)
29     AgcDb,                                                自动增益控制电平,单位为dB
30     CarrierFrequencyHz                                    载波频率

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Android 12版本提供了通过GNSS原始观测API获取GPS原始观测的功能。你可以使用以下步骤来获取GPS原始观测: 1. 确保你的设备支持GNSS原始观测API。你可以在设备的设置中查找“GNSS原始观测”选项,如果找到了该选项,说明你的设备支持该API。 2. 在你的应用程序中添加以下权限: ``` <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> ``` 3. 在你的应用程序中添加以下依赖项: ``` implementation 'com.android.support:support-v4:28.0.0' implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.google.android.gms:play-services-location:17.0.0' ``` 4. 创建一个LocationCallback对象来处理位置更新: ``` LocationCallback locationCallback = new LocationCallback() { @Override public void onLocationResult(LocationResult locationResult) { // 处理位置更新 } }; ``` 5. 创建LocationRequest对象以请求位置更新和GNSS原始观测: ``` LocationRequest locationRequest = new LocationRequest(); locationRequest.setInterval(1000); locationRequest.setFastestInterval(500); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); locationRequest.setNumUpdates(1); locationRequest.setWaitForAccurateLocation(true); locationRequest.setMinAccuracyMeters(10); locationRequest.setMinTime(5000); locationRequest.setMaxTime(10000); locationRequest.setBearingRequired(false); locationRequest.setSpeedRequired(false); locationRequest.setVerticalAccuracyMeters(10); locationRequest.setHorizontalAccuracyMeters(10); locationRequest.setPowerRequirement(LocationRequest.POWER_HIGH); locationRequest.setLocationPurpose(LocationRequest.PURPOSE_NAVIGATION); locationRequest.setNeedGnssMeasurement(true); ``` 6. 请求位置更新: ``` LocationServices.getFusedLocationProviderClient(context) .requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper()); ``` 7. 在onLocationResult回调方法中获取GNSS原始观测: ``` @Override public void onLocationResult(LocationResult locationResult) { if (locationResult == null) { return; } Location location = locationResult.getLastLocation(); if (location != null) { GnssMeasurement measurement = location.getExtras().getParcelable(Location.EXTRA_GNSS_MEASUREMENTS); if (measurement != null) { // 处理GNSS原始观测 } } } ``` 请注意,获取GNSS原始观测需要设备具有GNSS芯片,因此不是所有设备都支持此功能。另外,由于该功能涉及到敏感数据,因此需要向用户请求权限。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KD学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值