GPRMC信息中的精纬度读取

GPRMC信息中的精纬度读取,第1张

下面程序取出标准GPS传送数据里的:

Lat 度 和 分,南北, Lon 度 和 分,东西。

顺便取出 UTC 时分秒

#include <stdioh>

#include <mathh>

main(){

char gps_td[]="$GPRMC,081836,A,375165,S,1450736,E,0000,3600,130998,0113,E62";

char Lat[10],Lon[10];

double Lat_v,Lon_v;

char sn[2],ew[2];

int hh,mm,ss;

int i;

int Lat_deg,Lon_deg;

double Lat_mi,Lon_mi;

for (i=0;i<strlen(gps_td);i++) if (gps_td[i]==',')gps_td[i]=' ';

sscanf(gps_td,"%s %2d%2d%2d %s %s %s %s %s",&hh,&mm,&ss,Lat,sn,Lon,ew) ;

sscanf(Lat,"%lf",&Lat_v); sscanf(Lon,"%lf",&Lon_v);

Lat_deg = (int) Lat_v /100;

Lon_deg = (int) Lon_v /100;

Lat_mi = Lat_v - Lat_deg 100;

Lon_mi = Lon_v - Lon_deg 100;

printf("UTC Time: %02d:%02d:%02d\n",hh,mm,ss);

printf("Lat: %d deg %g fen %s\n",Lat_deg, Lat_mi, sn);

printf("Lon: %d deg %g fen %s\n",Lon_deg, Lon_mi, ew);

}

输出:

UTC Time: 08:18:36

Lat: 37 deg 5165 fen S

Lon: 145 deg 736 fen E

百度一下NMEA格式,就可以从NMA中成功的解析出你要的数据

推荐定位信息(GPRMC)

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>hh

<1> UTC时间,hhmmsssss(时分秒毫秒)格式

<2> 定位状态,A=有效定位,V=无效定位

<3> 纬度ddmmmmmm(度分)格式(前面的0也将被传输)

<4> 纬度半球N(北半球)或S(南半球)

<5> 经度dddmmmmmm(度分)格式(前面的0也将被传输)

<6> 经度半球E(东经)或W(西经)

<7> 地面速率(0000~9999节,前面的0也将被传输)

<8> 地面航向(0000~3599度,以正北为参考基准,前面的0也将被传输)

<9> UTC日期,ddmmyy(日月年)格式

<10> 磁偏角(0000~1800度,前面的0也将被传输)

<11> 磁偏角方向,E(东)或W(西)

<12> 模式指示(仅NMEA0183 300版本输出,A=自主定位,D=差分,E=估算,N=数据无效)

后hh为$到所有字符的异或和

这是你能获取到的全部信息,自己去解析。

jclass GpsInfoClass = env->FindClass("com/parser/GPSINFO");

jfieldID ID_bValid = env->GetFieldID(GpsInfoClass,"bValid","I");

jfieldID ID_bSpeed = env->GetFieldID(GpsInfoClass,"bSpeed","I");

env->SetIntField(_obj,ID_bValid,(jint)infobValid);

env->SetIntField(_obj,ID_bSpeed,(jint)infobSpeed);

return _obj;

以上就可以了。但是不知道你的BYTE是自定义的什么类型,如果是char之类的,就另外想办法转换成jint。其中 _obj 变量是public native GPSINFO getGpsInfo();这个本地方法在C代码中的参数:JNIEXPORT jobject JNICALL Java_com_parser_GPSINFO_ getGpsInfo(JNIEnv env, jobject _obj)

以上就是关于GPRMC信息中的精纬度读取全部的内容,包括:GPRMC信息中的精纬度读取、如何从GPRMC格式的数据中获取GPS终端的行进方向、我现在在做Android,用到了JNI,写了一个C程序,返回的是个结构体,在Android如何获取C程序返回的结构体呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9292332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存