GPS模块的数据怎么转化为经纬度!

2025-01-07 03:25:44
推荐回答(4个)
回答1:

if (ch == 'C') /// 如果第五个字符是C,($GPRMC)
{
if (status == 'A') /// 如果数据有效,则分析已经定位
{
GPS -> NS = buf[GetComma(4, buf)]; //判断为N纬
GPS -> EW = buf[GetComma(6, buf)]; //判断为E纬
GPS->latitude = Get_Double_Number(&buf[GetComma(3, buf)]);//获取纬度数
GPS->longitude = Get_Double_Number(&buf[GetComma( 5, buf)]); //获取经度数
GPS->latitude_Degree = (int)GPS->latitude / 100; /// 分离纬度,纬度数除以100取整,到度
lati_cent_tmp = (GPS->latitude - GPS->latitude_Degree * 100); /// 分离纬度,到分,含有小数
GPS->latitude_Cent = (int)lati_cent_tmp;//取整得到分
lati_second_tmp = (lati_cent_tmp - GPS->latitude_Cent) * 60; //取秒
GPS->latitude_Second = (int)lati_second_tmp; //对小数化成的秒取整

回答2:

你这个是nema-0183协议中的 $GPGSV格式 $GPRMC格式 $GPGSA格式
如:$GPGSV,2,1,08,06,33,240,45,10,36,074,47,16,21,078,44,17,36,313,42*78
标准格式: $GPGSV,(1),(2),(3),(4),(5),(6),(7),…(4),(5),(6),(7)*hh(CR)(LF)
各部分含义为:
(1)总的GSV语句电文数;2;
(2)当前GSV语句号:1;
(3)可视卫星总数:08;
(4)卫星号:06;
(5)仰角(00~90度):33度;
(6)方位角(000~359度):240度;
(7)信噪比(00~99dB):45dB(后面依次为第10,16,17号卫星的信息);
*总和校验域;
hh 总和校验数:78;
(CR)(LF)回车,换行。
注:每条语句最多包括四颗卫星的信息,每颗卫星的信息有四个数据项,即:
(4)-卫星号,(5)-仰角,(6)-方位角,(7)-信噪比。
至于$GPRMC格式 $GPGSA格式 格式说明上百度一搜就知道了

看你的数据的话 应该是还没有接收到卫星完成定位,卫星数不够4颗,要接收到多与或者等于4颗卫星才能定位 N,E 后面的数据都是0或者空嘛,放到野外开阔地接收一下看看

回答3:

GPS给出来的经纬度是不能直接采用的...要换算成我们常用的度分秒的格式..

回答4:

风雨无阻