如何获取 GPS 原始数据(卫星伪距)?

How can I get the GPS raw data (satellites pseudo range)?(如何获取 GPS 原始数据(卫星伪距)?)

本文介绍了如何获取 GPS 原始数据(卫星伪距)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何读取 GPS 原始数据,更具体地说,我需要卫星伪距.此数据不提供 NMEA 格式.

How can I read GPS raw data, to be more specific I need the saellites pseudo range. This data is not available in NMEA format.

推荐答案

卫星伪距在 不可用android/location/GpsStatus.html">官方API,既不通过GpsStatus.Listener也不通过GpsStatus.NMEAListener接口.

Satellites pseudo-ranges are not available in the official API, neither through the GpsStatus.Listener nor the GpsStatus.NMEAListener interfaces.

GpsSatellite 类中唯一可用的信息是:

  • PRN
  • 方位角
  • 海拔
  • C/N0
  • 一个usedInFix"布尔值.

Android 源代码仅从本机代码中询问这些字段,因此无法从任何其他 Java API 中获取.

The Android source code asks just those fields from the native code, so no hope to get it from any other Java API.

无论如何,您获取这些数据的最佳方式(不适合 Market-able 应用程序)是探索 Android 源代码,或者找到一个本地挂钩来获取低级别的数据并通过 JNI 访问,或重新编译完整的操作系统,根据您的需要修改 API(您还需要为此找到相关的本机代码).
最后,如果您可以让芯片组向您发送 GRS NMEA 语句(您可以通过标准的 NMEAListener 接口获取它们,困难在于配置芯片组发送它们)然后您可以计算伪距离(这些句子包含卫星的残差)

The best way for you to get this data anyway (which is not suitable for a Market-able application) would be to explore Android source code, and either find a native hook to get the data at low level and access through JNI, or recompile the full OS modifying the API to your needs (you also need to find the relevant native code for that).
Finally, if you can get the chipset to send you GRS NMEA sentences (you would get them through the standard NMEAListener interface, the difficulty is configuring the chipset to send them) you can then compute the pseudo-ranges (those sentences contain satellites' residuals)

祝你好运,如果你尝试这些想法,请告诉我!

Good luck and let me know if you try any of these ideas!

这篇关于如何获取 GPS 原始数据(卫星伪距)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如何获取 GPS 原始数据(卫星伪距)?

基础教程推荐