$GNGGA,063705.00,2237.8099331,N,11404.8822219,E,5,09,1.4,151.837,M,0.000,M,2.0,0074*6C
时间: 2024-03-05 15:45:31 浏览: 688
这是一个GPS定位数据的字符串,它遵循了NMEA 0183协议的格式。下面是对该字符串的解析:
- GNGGA:这是NMEA协议中的一种语句类型,表示GPS定位数据。
- 063705.00:这是UTC时间,表示定位数据的时间为06时37分05秒。
- 2237.8099331,N:这是纬度信息,表示纬度为22度37.8099331分,N表示北纬。
- 11404.8822219,E:这是经度信息,表示经度为114度04.8822219分,E表示东经。
- 5:这是定位质量指示符,表示定位质量为固定解。
- 09:这是使用卫星数量,表示使用了9颗卫星进行定位。
- 1.4:这是水平精度因子,表示水平精度为1.4米。
- 151.837,M:这是海拔高度,表示海拔高度为151.837米。
- 0.000,M:这是大地水准面与WGS84椭球面的高度差,表示高度差为0.000米。
- 2.0:这是差分GPS数据期限,表示差分GPS数据的期限为2.0秒。
- 0074:这是差分参考站ID号。
- *6C:这是校验和,用于校验数据的完整性。
相关问题
$GNGGA,062856.000,4002.4581,N,11620.4313,E,1,23,0.7,82.1,M,0.0,M,,*4F,这数据的规律是$GNGGA是不变的,M,,*是不变的
根据您提供的数据,我们可以总结出以下规律:
- 数据以"$GNGGA"开头,后面跟着一些逗号分隔的字段。
- 字段中包含时间戳、纬度、经度、高度等信息。
- 字段以"M"和",,"结尾,之后跟着校验和。
- 校验和以"*"开头,后面跟着两个十六进制数。
基于这些规律,我们可以使用正则表达式来提取符合条件的数据。下面是一个可能的正则表达式:
```python
import re
pattern = r'\$GNGGA,(\d{6}\.\d{3}),(\d{4}\.\d{4}),([NS]),(\d{5}\.\d{4}),([EW]),\d,(\d{2}),\d{1,3}\.\d,\d{1,3}\.\d,(M),,(\*\w{2})'
```
其中,括号内的部分表示需要提取的信息,例如`\d{6}\.\d{3}`表示6个数字和一个小数点组成的字符串,用来匹配时间戳。`[NS]`和`[EW]`表示匹配"N"或者"S"以及"E"或者"W"。通过这个正则表达式,我们可以提取到时间戳、纬度、经度、高度和校验和等信息。可以使用re.findall()函数来获取所有符合条件的数据。例如:
```python
data = '$GNGGA,062856.000,4002.4581,N,11620.4313,E,1,23,0.7,82.1,M,0.0,M,,*4F'
result = re.findall(pattern, data)
print(result)
```
输出结果为:
```
[('062856.000', '4002.4581', 'N', '11620.4313', 'E', '23', '0.7', '82.1', 'M', '*4F')]
```
其中,元组中的每个元素对应正则表达式中一个括号内的部分。
java如何切去字符串"?9??8=?????1L?m??$GNGGA,065853.000,3121.778669,N,12042.333361,E,1,28,0.86,141.247,M,8.15,M,,*70"中$GNGGA左侧多余数据
可以使用Java中的字符串截取方法substring()来切去字符串中$GNGGA左侧的多余数据。可以先使用indexOf()方法找到$GNGGA的位置,然后再使用substring()方法截取该位置及其右侧的字符串。具体代码如下所示:
```java
String str = "?9??8=?????1L?m??$GNGGA,065853.000,3121.778669,N,12042.333361,E,1,28,.86,141.247,M,8.15,M,,*70";
String result = str.substring(str.indexOf("$GNGGA"));
System.out.println(result);
```
输出结果为:$GNGGA,065853.000,3121.778669,N,12042.333361,E,1,28,0.86,141.247,M,8.15,M,,*70
阅读全文