GPS数据格式全解

2022-09-09 17:41:28 浏览数 (2)

0x00 GPS NMEA

GPS模块在定位后会输出含有各项定位信息的NMEA语句,其中包括经纬度 信息。

GPGGA,054514.000,2238.5260,N,11401.9686,E,1,7,1.27,89.2,M,-2.3,M,,7FGPGSA,A,3,08,23,10,28,09,04,02,,,,,,1.52,1.27,0.8401 GPGSV,3,1,10,28,73,159,42,42,50,128,36,04,49,276,44,10,31,191,4375GPGSV,3,2,10,02,17,252,38,08,14,192,41,09,12,195,38,23,07,108,3574

详细的NEMA 0183协议解析访问网页NEMA 0183查询

0x01 经纬度转换

以NMEA码RMC数据为例: $GPRMC,054514.000,A,2238.5260,N,11401.9686,E,0.14,183.83,270913,,,A*6B

经纬度格式为: Latitude: ddmm.mmmm Longitude: dddmm.mmm

转换成度: 方法是dd作整数位,(mm.mmmm÷60)作小数位 上例可得 01.9686÷60=0.03281;38.5260÷60=0.6421 所以: 11401.9686 = 114.03281 2238.5260 = 22.6421

0x02 坐标系转换

出于安全的考虑,国家不允许直接使用GPS坐标。GCJ-02坐标系又称为火星坐标系。腾讯地图,高德地图,谷歌中国地图使用的是GCJ-02坐标系,百度地图和搜狗地图使用的是在GCJ-02基础上再加密的坐标。

地图公司测绘得到原始的GPS地图后,要上交给国家测绘局,测绘局给GPS坐标加上偏移(不是线性偏移),得到GCJ-02坐标,测绘局要收钱的,然后再交给地图公司。地图公司可以直接发行或者再做一次偏移后发行。一般的偏移是在几百米,对于精度要求不高的定位,这个误差无所谓。

坐标系转换的方式就不赘述了。 已经有很多算法和公开的api了。

0 人点赞