GPS数据格式解析「建议收藏」

2022-09-07 13:39:44 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。

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

0 人点赞