大家好,又见面了,我是你们的朋友全栈君。
GPS数据格式解析
简介
GPS发送数据以行为单位,数据格式如下:
$信息类型,x,x,x,x,x,x,x,x,x,x,x,x,x
每行以字符”$”开头,以<CR><LF>为结尾,CR—Carriage Return,LF—Line Feed,表示回车和换行。信息类型有以下几种,如表1,
表1 GPS数据信息类型分类
信息类型 | 英文语义 | 中文语义 |
---|---|---|
GPRMC | Recommended Minimum Specific GPS/TRANSIT Data(RMC) | 推荐定位信息 |
GPVTG | Track Made Good and Ground Speed(VTG) | 地面速度信息 |
GPGGA | Global Positioning System Fix Data(GGA) | 全球定位信息 |
GPGSA | GPS DOP and Active Satellites(GSA) | 当前卫星信息 |
GPGSV | GPS Satellites in View(GSV) | 可见卫星信息 |
GPGLL | Geographic Position(GLL) | 地理定位信息 |
以下分类介绍:
1.$GPRMC(RecommendedMinimum Specific GPS/TRANSIT Data)
推荐定位信息$GPRMC的标准格式如下:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>
字段 | 参数 | 格式 |
---|---|---|
字段0 | 帧头 | $GPRMC |
字段1 | UTC时间 | hhmmss.ss |
字段2 | 状态 | A/V,A代表有效,V代表无效 |
字段3 | 纬度 | ddmm.mmmm |
字段4 | 北纬/南纬 | N/S,N表示北纬,S表示南纬 |
字段5 | 经度 | ddmm.mmmm |
字段6 | 东经/西经 | E/W,E表示东经,W表示西经 |
字段7 | 速度 | 节(knots),1 knots=1.852km/h |
字段8 | 方位角 | 度(以真北为参考基准) |
字段9 | UTC日期 | 日月年,ddmmyy |
字段10 | 磁偏角 | 000~180度 |
字段11 | 磁偏角方向 | E/W,东/西 |
字段12 | 模式仅NMEA0183 3.00版本输出 | A:自动,D:差分,E:估测,N:无效 |
字段13 | 校验值 | hh |
以$GPRMC,092427.604,V,4002.1531,N,11618.3097,E,0.000,0.00,280814,,E,N*08为例,各字段的含义如下:
字段 | 参数 | 格式 |
---|---|---|
字段0 | $GPRMC | 表示GPS信息类型为GPRMC |
字段1 | 092427.604 | 定位时间09时24分27.604秒 |
字段2 | V | 定位无效 |
字段3 | 4002.1531 | 纬度:40度02.1531分 |
字段4 | N | 北纬 |
字段5 | 11618.3097 | 经度:116度18.3097分 |
字段6 | E | 东经 |
字段7 | 0.000 | 速度 |
字段8 | 0.00 | 方位角 |
字段9 | 280814 | UTC日期28日08月14年 |
字段10 | 为空表示磁偏角 | |
字段11 | E | 磁偏角方向是东 |
字段12 | N | 模式:无效 |
字段13 | 08 | 校验和 |
2.$GPVTG(TrackMade Good and Ground Speed)
地面速度信息$GPVTG的标准格式如下:
$GPVTG,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>*hh<CR><LF>
字段 | 参数 | 格式 |
---|---|---|
字段0 | 帧头 | $GPVTG |
字段1 | 以真北为基准的地面航向 | 000~359度 |
字段2 | 航向标志位,真北参照系 | 通常为T |
字段3 | 以磁北为基准的地面航向 | 000~359度 |
字段4 | 航向标志位,磁北参照系 | 通常为M |
字段5 | 水平运动速度 | 0.00 |
字段6 | 单位,节 | N |
字段7 | 水平运动速度 | 0.00 |
字段8 | 单位,km/h | K |
字段9 | 模式(仅NMEA0183 3.00版本输出) | A:自动,D:差分,E:估测,N:无效 |
字段10 | hh | 校验和 |
以$GPVTG,0.0,T,,M,0.00,N,0.00,K,N*50为例,个字段含义如下:
字段 | 参数 | 格式 |
---|---|---|
字段0 | $GPVTG | 表示GPS信息类型为GPVTG |
字段1 | 0.0 | 地面速度 |
字段2 | T | 航向标志位,真北方向 |
字段3 | 无 | 地面速度 |
字段4 | M | 航向标志位,磁北方向 |
字段5 | 0.00 | 水平运动速度 |
字段6 | N | 单位:节 |
字段7 | 0.00 | 水平运动速度 |
字段8 | K | 单位:km/h |
字段9 | N | 无效 |
字段10 | 50 | 校验和 |
3. $GPGGA(Global Positioning System Fix Data)
全球定位信息$GPGGA的标准格式为:
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*hh<CR><LF>
字段 | 参数 | 格式 |
---|---|---|
字段0 | 帧头 | $GPGGA |
字段1 | UTC时间 | Hhmmss.sss |
字段2 | 纬度 | ddmm.mmmm |
字段3 | 北纬/南纬 | N/S |
字段4 | 经度 | dddmm.mmmm |
字段5 | 东经/西经 | E/W |
字段6 | 定位质量指标 | 0:定位无效,1:实时GPS,2:差分GPS |
字段7 | 使用卫星数量 | 00~12 |
字段8 | 水平精度 | 0.5~99.9 |
字段9 | 天线离海平面的高度 | -9999.9~9999.9米 |
字段10 | 高度单位 | 通常为M:米 |
字段11 | 大地椭球面相对海平面的高度 | -999.9~9999.9 |
字段12 | 高度单位 | 通常为M:米 |
字段13 | 差分GPS数据期限 | |
字段14 | 差分参考基站标号 | 0000~1023 |
字段15 | hh | 校验和 |
以$GPGGA,082006.000,3852.9276,N,11527.4283,E,1,08,1.0,20.6,M,,,,0000*35为例,各字段的含义如下:
字段 | 参数 | 格式 |
---|---|---|
字段0 | 帧头 | 表示GPS信息类型为GPGGA |
字段1 | 082006.000 | UTC时间08时20分06.000秒 |
字段2 | 3852.9276 | 纬度38度52.9276分 |
字段3 | N | 北纬 |
字段4 | 11527.4283 | 经度115度27.4283分 |
字段5 | E | 东经 |
字段6 | 1 | 实时GPS |
字段7 | 08 | 可使用卫星数08 |
字段8 | 1.0 | 水平精度因子1.0 |
字段9 | 20.6 | 天线高程20.6米 |
字段10 | M | 天线高程单位:米 |
字段11 | 无 | 大地椭球面相对海平面的高度 |
字段12 | 无 | 高度单位 |
字段13 | 无 | 差分GPS数据期限 |
字段14 | 0000 | 实时GPS无 |
字段15 | 35 | 校验和 |
4. $GPGSA(GPS DOP and Active Satellites)
当前卫星信息$GPGSA的标准格式如下:
$GPGSA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>,<17>*hh<CR><LF>
字段 | 参数 | 格式 |
---|---|---|
字段0 | 帧头 | $GPGGA |
字段1 | 模式 | M:手动,A:自动 |
字段2 | 定位型式 | 1:未定位,2:二维定位,3:三维定位 |
字段3 | 第1信道正在使用的卫星RPN码编号 | Pseudo Random Noise,伪随机噪声码,01~32表示天空中使用的卫星编号,最多可接收12颗卫星信息 |
字段4 | 第2信道正在使用的卫星RPN码编号 | |
字段5 | 第3信道正在使用的卫星RPN码编号 | |
字段6 | 第4信道正在使用的卫星RPN码编号 | |
字段7 | 第5信道正在使用的卫星RPN码编号 | |
字段8 | 第6信道正在使用的卫星RPN码编号 | |
字段9 | 第7信道正在使用的卫星RPN码编号 | |
字段10 | 第8信道正在使用的卫星RPN码编号 | |
字段11 | 第9信道正在使用的卫星RPN码编号 | |
字段12 | 第10信道正在使用的卫星RPN码编号 | |
字段13 | 第11信道正在使用的卫星RPN码编号 | |
字段14 | 第12信道正在使用的卫星RPN码编号 | |
字段15 | PDOP综合位置精度因子 | 0.5~99.9 |
字段16 | HDOP水平精度因子 | 0.5~99.9 |
字段17 | VDOP垂直精度因子 | 0.5~99.9 |
字段18 | hh | 校验和 |
5.$GPGSV(GPS Satellites in View)
可见卫星信息$GPGSV的标准格式如下:
$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,…,<4>,<5>,<6>,<7>*hh(CR)(LF)
字段 | 参数 | 格式 |
---|---|---|
字段0 | 帧头 | $GPGGA |
字段1 | 总的GSV语句电文数 | |
字段2 | 当前GSV语句号 | |
字段3 | 可视卫星总数 | 00~12 |
字段4 | 卫星编号 | 01~32 |
字段5 | 卫星仰角 | 00~90度 |
字段6 | 卫星方位角 | 000~359度 |
字段7 | 信噪比(C/No) | 00~99dB,0表示未接收到信号 |
字段8 | hh | 校验和 |
注:每条语句最多包含四颗卫星的信息,每颗卫星包含四个数据项:卫星编号,卫星仰角,卫星方位角,信噪比。
以$GPGSV,2,1,08,06,33,240,45,10,36,074,47,16,21,078,44,17,36,313,42*78 为例,各字段含义如下:
字段 | 参数 | 格式 |
---|---|---|
字段0 | 帧头 | 表示GPS信息类型为GPGGA |
字段1 | 2 | GPS语句电文数为2 |
字段2 | 1 | 当前GSV语句号为1 |
字段3 | 08 | 可视卫星总数为8 |
字段4 | 06 | 06号卫星 |
字段5 | 33 | 卫星仰角33度 |
字段6 | 240 | 卫星方位角240度 |
字段7 | 25 | 信噪比45dB |
字段8 | 10 | 10号卫星 |
字段9 | 36 | 卫星仰角36度 |
字段10 | 074 | 卫星方位角074度 |
字段11 | 47 | 信噪比47dB |
字段12 | 16 | 16号卫星 |
字段13 | 21 | 卫星仰角21度 |
字段14 | 078 | 卫星方位角078度 |
字段15 | 44 | 信噪比44dB |
字段16 | 17 | 17号卫星 |
字段17 | 36 | 卫星仰角36度 |
字段18 | 313 | 卫星方位角313度 |
字段19 | 42 | 信噪比42dB |
字段20 | 78 | 校验和 |
6.$GPGLL(Geographic Position)
地理定位信息$GPGLL的标准格式如下:
$GPGLL,<1>,<2>,<3>,<4>,<5>,<6>*hh<CR><LF>
字段 | 参数 | 格式 |
---|---|---|
字段0 | 帧头 | $GPGLL |
字段1 | 纬度 | ddmm.mmmm |
字段2 | 北纬/南纬 | N/S |
字段3 | 经度 | dddmm.mmmm |
字段4 | 东经/西经 | E/W |
字段5 | UTC时间(时分秒) | hhmmss |
字段6 | 状态标志位 | A:有效,V无效 |
字段7 | hh | 校验和 |
7、java解析经纬度$GPRMC数据经纬度
代码语言:javascript复制 /**
* 解析纬度
* @param lat
* @return
*/
public String parseLat(String lat,String type){
//纬度
double latitude = Double.parseDouble(lat.substring(0, 2));
latitude = Double.parseDouble(lat.substring(2))/60;
if("N".equals(type)){ //北纬
return String.valueOf(latitude);
}else{ //南纬
return "-" String.valueOf(latitude);
}
}
/**
* 解析经度
* @param lon
* @return
*/
public String parseLon(String lon,String type){
//经度
double longitude=Double.parseDouble(lon.substring(0, 3));
longitude = Double.parseDouble(lon.substring(3))/60;
if("E".equals(type)){ //东经
return String.valueOf(longitude);
}else{ //西经
return "-" String.valueOf(longitude);
}
}
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/147523.html原文链接:https://javaforall.cn