问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

把gps接收器的原始数据处理为经纬度及高度的具体坐标,用C#实现,求代码,求帮助,谢谢啦

发布网友 发布时间:2022-04-23 02:26

我来回答

1个回答

热心网友 时间:2023-10-11 16:50

int GPS_RMC_Parse(char *line, GPS_INFO *GPS)
{
unsigned char ch, status, tmp;
float lati_cent_tmp, lati_second_tmp;
float long_cent_tmp, long_second_tmp;
float speed_tmp;
char *buf = line; /// 得到缓存
ch = buf[5];
status = buf[GetComma(2, buf)];

if (ch == 'C') /// 如果第五个字符是C,($GPRMC)
{
if (status == 'A') /// 如果数据有效,则分析已经定位
{
GPS -> NS = buf[GetComma(4, buf)];
GPS -> EW = buf[GetComma(6, buf)];

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; /// 分离纬度
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;

GPS->longitude_Degree = (int)GPS->longitude / 100; /// 分离经度
long_cent_tmp = (GPS->longitude - GPS->longitude_Degree * 100);
GPS->longitude_Cent = (int)long_cent_tmp;
long_second_tmp = (long_cent_tmp - GPS->longitude_Cent) * 60;
GPS->longitude_Second = (int)long_second_tmp;

speed_tmp = Get_Float_Number(&buf[GetComma(7, buf)]); /// 速度(单位:海里/时)
GPS->speed = speed_tmp * 1.85; /// 1海里=1.85公里
GPS->direction = Get_Float_Number(&buf[GetComma(8, buf)]); /// 角度

GPS->D.hour = (buf[7] - '0') * 10 + (buf[8] - '0'); /// 时间
GPS->D.minute = (buf[9] - '0') * 10 + (buf[10] - '0');
GPS->D.second = (buf[11] - '0') * 10 + (buf[12] - '0');
tmp = GetComma(9, buf);
GPS->D.day = (buf[tmp + 0] - '0') * 10 + (buf[tmp + 1] - '0'); //日期
GPS->D.month = (buf[tmp + 2] - '0') * 10 + (buf[tmp + 3] - '0');
GPS->D.year = (buf[tmp + 4] - '0') * 10 + (buf[tmp + 5] - '0')+2000;

UTC2BTC(&GPS->D);

return 1;
}
}

return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大学中大德指什么 驾考各科通过率是多少 驾考全部一次过的比例 驾考宝典科目一通过率多少 驾考宝典通过率怎么算的 .js 文件和 .mjs 文件的区别 .js是什么文 苹果13在哪切换4G网络 苹果13怎么把5g换成4g?苹果13设置4g网络方法介绍 iphone13如何更改网络信号 iphone13手机5G设置成4G教程 为什么GPS接收器需要至少4颗卫星才能定位? GPS接收器的常规问题 GPS接收机的发展历史? 请问GPS接收机传出的原始数据(raw)对于不同类型的接收机有不同吗?比如码相关接收机、双频接收机等 GPS接收器 手机GPS导航所使用到"GPS信号接收器"是什么东西? 华为荣耀ask-al00x是x10还是x9? GPS接收器的介绍 GPS定位跟踪器的工作原理是什么? 手机gps接收器是什么 gps接收器是什么 GPS接收器的简介 GPS定位的基本原理是什么? 对不服从管理的员工怎么处理 对于不服从管理的员工该怎么办? 员工不服从管理可以辞退吗 员工不服从管理辞退有没有补偿的? 如果下属不服从管理,应该怎么办? 如果员工不服从管理怎么办,可以开除吗 对于那种不服从工作安排的员工,该如何进行管理? GPS接收机的检验、使用与维护 梦见别人夸我漂亮,请解梦 华为平板转屏怎么弄? 华为平板怎么调横式屏幕? 14岁少女梦见自己被帅气小哥哥追求,但是被自己拒绝了? 梦见乳房出奶什么意思? 我的android平板电脑是默认横屏的,怎么才能让他变成默认竖屏 女梦见乳房上长出个大拇指啥意思? 海信平板电脑怎么设置横屏竖屏 苹果第5代ipad MP2F2CH/A怎么设置竖屏或者横屏? 安桌平板电脑怎样调整横屏竖屏? 华为手机有哪些功能关掉比较好? 新华为手机哪些功能需要关闭? 华为手机需要关闭哪些功能不卡 华为三指放大功能怎么关闭? 华为手机功能繁多,有哪些功能关掉比较好? 华为手机关闭哪些功能可以更省电 华为手机必须关掉这几个功能,不然手机会越用 华为手机怎么把这个功能关闭? 华为ask一al00是什么型号