实时更新车载gps全球定位系统的地图数据的方法

文档序号:6098376阅读:334来源:国知局
专利名称:实时更新车载gps全球定位系统的地图数据的方法
技术领域
本发明涉及全球定位导航领域,特别涉及车载GPS全球定位系统领域,具体是指一种实时更新车载GPS全球定位系统的地图数据的方法。
背景技术
伴随科技的发展,汽车技术的进步和逐渐普及,大量应用卫星技术实现车辆定位和导航。当前,其主要采用由美国军方推出的GPS系统实现车辆定位,其运用卫星技术确定车辆的经,纬度地理数据进行定位,具有精度高,方便可靠的特点。再结合车载装置备有的数字地图软件,在地图上直观可视的显示出车辆的位置,并可按照用户设定的条件寻找最佳路径(最佳可为时间最短,距离最短等)实现智能导航。
但目前此种装置具有下述缺点当车辆进入某一区域,如果描述这部分的地理数据不充分,比如一些偏僻小路或者新近建设的道路的地理数据在系统地图数据文件里不完全或者没有,这些道路在车载装置的地图上并无标识,系统在做导航时也没有考虑这些信息。但对于系统而言,这些″陌生″道路的地理数据,具有相当的价值它可以完善地图数据,使地图更真实的反应实际的地理情况,使导航的路线更符合实际的最佳。目前的车载GPS定位导航系统没有将这些有价值的地理数据实时加入系统地图数据文件,更新其地图数据。

发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种能够实时更新车载GPS全球定位系统的地图数据、消除地图盲区、优化导航、精确快捷的实时更新车载GPS全球定位系统的地图数据的方法。
为了实现上述的目的,本发明的实时更新车载GPS全球定位系统的地图数据的方法如下该实时更新车载GPS全球定位系统的地图数据的方法,包括GPS定位信息接收系统、通过RS-232串口与其相连接的计算机系统和地图数据库系统,其主要特点是,所述的方法包括以下步骤(1)通过GPS定位信息接收系统进行地理定位数据的接收;(2)计算机系统通过串口对接收到的地理定位数据进行信息提取;(3)计算机系统将提取得到的定位信息进行处理,转化为与系统数据库相适合的数据;(4)计算机系统将处理转化后的数据导入地图数据库中。
该实时更新车载GPS全球定位系统的地图数据的方法的对接收到的地理定位数据进行信息提取包括以下步骤(1)计算机系统打开与之相连接的串口并设置相应的参数;(2)采用事件触发方式进行地理定位数据接收并将存储于缓存中;(3)计算机系统根据通信协议的帧结构对地理定位数据中的各个定位信息进行提取。
该实时更新车载GPS全球定位系统的地图数据的方法的设置串口的参数包括(1)接收两连续字节的最大时间间隔;(2)接收每字节的平均允许时间;(3)接收时间常数。
该实时更新车载GPS全球定位系统的地图数据的方法的帧结构包括帧头、帧尾和帧内数据,所述的帧头为“$GPGGA”、“$GPGSA”、“$GPGSV”或“$GPRMC”,所述的帧尾为回车符和换行符,所述的帧内数据为<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>
其中<1>——当前位置的格林尼治时间,格式为hhmmss;<2>——状态,A为有效位置,V为非有效接收警告,即当前天线视野上方的卫星个数少于3颗;<3>——纬度,格式为ddmm.mmmm;<4>——标明南北半球,N为北半球、S为南半球;<5>——经度,格式为dddmm.mmmm;<6>——标明东西半球,E为东半球、W为西半球;<7>——地面上的速度,范围为0.0到999.9;<8>——方位角,范围为000.0到359.9度;<9>——日期,格式为ddmmyy;<10>——地磁变化,从000.0到180.0度;<11>——地磁变化方向,为E或W。
该实时更新车载GPS全球定位系统的地图数据的方法的提取的定位信息包括日期、时间和经纬度地理坐标。
该实时更新车载GPS全球定位系统的地图数据的方法的对提取的定位信息进行处理包括以下步骤(1)将日期转化为年月日信息;(2)将时间转化为24小时制北京时间;(3)将经纬度地理坐标由WGS-84坐标系转换为国际标准经纬度坐标系;(4)将经纬度地理坐标转化为与数据库系统相适合的数据。
该实时更新车载GPS全球定位系统的地图数据的方法的经纬度地理坐标的转化包括以下步骤(1)通过投影变换将经纬度地理坐标转化为高斯坐标;(2)通过坐标变换将高斯坐标转化为电子地图坐标。
采用了该发明的实时更新车载GPS全球定位系统的地图数据的方法,由于通过采集车辆走过的“陌生”道路的地理经纬度等信息,并将这些有价值的信息加入车载GPS数据库系统,实时更新车载GPS系统之地图数据,消除原来地图的“盲区”,可以使得导航系统在车辆行驶过程中发现新的更佳路径,从而实现更为优化的导航处理;同时,本发明的方法除可以利用于车载GPS全球定位系统外,还可以利用于其它GPS定位系统设备,给人们的出行带来了很大的便利。


图1为本发明的实时更新车载GPS全球定位系统的地图数据的方法的流程图。
具体实施例方式
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
在车辆的行驶过程中,根据设定的间隔时间,利用车载GPS不断的采集车辆定位数据,并进行相关处理,再将这些数据加入系统的地图数据文件,便可更新地图数据,便可消除原来地图的一些盲区,拓展地图的显示信息,实现更为优化的导航功能。
请参阅图1所示,该实时更新车载GPS全球定位系统的地图数据的方法,包括GPS定位信息接收系统、通过RS-232串口与其相连接的计算机系统和地图数据库系统,其中所述的方法包括以下步骤(1)通过GPS定位信息接收系统进行地理定位数据的接收;(2)计算机系统通过串口对接收到的地理定位数据进行信息提取,包括以下步骤(a)计算机系统打开与之相连接的串口并设置相应的参数,该实时更新车载GPS全球定位系统的地图数据的方法的设置串口的参数包括
(i)接收两连续字节的最大时间间隔;(ii)接收每字节的平均允许时间;(iii)接收时间常数。
(b)采用事件触发方式进行地理定位数据接收并将存储于缓存中;(c)计算机系统根据通信协议的帧结构对地理定位数据中的各个定位信息进行提取,所提取的定位信息包括日期、时间和经纬度地理坐标。
(3)计算机系统将提取得到的定位信息进行处理,转化为与系统数据库相适合的数据,其中对提取的定位信息进行处理包括以下步骤(a)将日期转化为年月日信息;(b)将时间转化为24小时制北京时间;(c)将经纬度地理坐标由WGS-84坐标系转换为国际标准经纬度坐标系;(d)将经纬度地理坐标转化为与数据库系统相适合的数据,其中经纬度地理坐标的转化包括以下步骤(i)通过投影变换将经纬度地理坐标转化为高斯坐标;(ii)通过坐标变换将高斯坐标转化为电子地图坐标。;(iii)计算机系统将处理转化后的数据导入地图数据库中。
在实际应用当中,主要包括三个功能模块地理数据采集、地理数据处理和地理数据导入。
1、地理数据采集模块功能定义GPS全球定位系统定位数据的提取,实现地理数据的采集。
其功能由用户启动。
(1)定位数据的接收通常GPS定位信息接收系统主要由GPS接收天线、变频器、信号信道、微处理器、内存以及电源等部分组成。由于GPS定位信息内容较少,因此多用RS-232串口将定位信息(NEMA0183语句)从GPS接收机传送到系统装置中进行信息提取处理。从串口读取数据有多种方法,在此直接使用Win32 API函数对其进行编程处理。在Windows下不允许直接对硬件端口进行控制操作,所有的端口均被视为“文件”,因此在对串口进行侦听之前需要通过打开文件来打开串口,并对其进行相关参数配置m_hCom=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);file://以异步方式打开COM1口SetCommMask(m_hCom,EV_RXCHAR);file://添加或修改Windows所报告的事件列表SetupComm(m_hCom,READBUFLEN/*读缓冲*/,WRITEBUFLEN/*写缓冲*/);//初始化通讯设备参数//清除缓冲信息PurgeComm(m_hCom,PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);//对异步I/O进行设置CommTimeOuts.ReadIntervalTimeout=MAXDWORD;file://接收两连续字节的最大时间间隔CommTimeOuts.ReadTotalTimeoutMultiplier=0;file://接收每字节的平均允许时间CommTimeOuts.ReadTotalTimeoutConstant=0;file://接收时间常数SetCommTimeouts(m_hCom,&CommTimeOuts);file://获取并设置串口GetCommState(m_hCom,&dcb);dcb.BaudRate=CBR_4800;dcb.ByteSize=8;dcb.Parity=ODDPARITY;dcb.StopBits=ONESTOPBIT;SetCommState(m_hCom,&dcb);
在成功打开并设置通讯口后,可采取轮询串口和事件触发两种方式对资料进行接收处理,本专利在此采取效率比较高的事件触发方式进行接收处理,通过等待EV_RXCHAR事件的发生来启动ReadFile函数完成对GPS定位信息的接收while(true){WaitCommEvent(m_hCom,&dwEvtMask,NULL);if(dwEvtMask&EV_RXCHAR==EV_RXCHAR)if(ComStat.cblnQue>0)ReadFile(m_hCom,m_readbuf,ComStat.cbInQue,&nLength,&oIRead);}
(2)提取定位数据GPS接收机只要处于工作状态就会源源不断地把接收并计算出的GPS导航定位信息通过串口传送到计算机中。前面的代码只负责从串口接收数据并将其放置于缓存,在没有进一步处理之前缓存中是一长串字节流,这些信息在没有经过分类提取之前是无法加以利用的。因此,必须通过程序将各个字段的信息从缓存字节流中提取出来,将其转化成有实际意义的,可供高层决策使用的定位信息数据。同其它通讯协议类似,对GPS进行信息提取必须首先明确其帧结构,然后才能根据其结构完成对各定位信息的提取。对于本专利所使用的GARMIN GPS天线板,其发送到系统装置的数据主要由帧头、帧尾和帧内数据组成,根据数据帧的不同,帧头也不相同,主要有“$GPGGA”、“$GPGSA”、“$GPGSV”以及“$GPRMC”等。这些帧头标识了后续帧内数据的组成结构,各帧均以回车符和换行符作为帧尾标识一帧的结束。对于通常的情况,所关心的定位数据如经纬度、速度、时间等均可以从“$GPRMC”帧中获取得到,该帧的结构及各字段释义如下$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh<1>当前位置的格林尼治时间,格式为hhmmss<2>状态,A为有效位置,V为非有效接收警告,即当前天线视野上方的卫星个数少于3颗。
<3>纬度,格式为ddmm.mmmm<4>标明南北半球,N为北半球、S为南半球<5>径度,格式为dddmm.mmmm<6>标明东西半球,E为东半球、W为西半球<7>地面上的速度,范围为0.0到999.9<8>方位角,范围为000.0到359.9度<9>日期,格式为ddmmyy<10>地磁变化,从000.0到180.0度
<11>地磁变化方向,为E或W至于其它几种帧格式,除了特殊用途外,平时并不常用,虽然接收机也在源源不断地向主机发送各种数据帧,但在处理时一般先通过对帧头的判断而只对″$GPRMC″帧进行数据的提取处理。如果情况特殊,需要从其它帧获取资料,处理方法与之也是完全类似的。由于帧内各数据段由逗号分割,因此在处理缓存数据时一般是通过搜寻ASCII码“$”来判断是否是帧头,在对帧头的类别进行识别后再通过对所经历逗号个数的计数来判断出当前正在处理的是哪一种定位导航参数,并作出相应的处理。下面就是对缓存Data中的数据进行解帧处理的主要代码,本专利在此只关心时间(日期和时间)和地理坐标(经、纬度)for(int i=0;i<DATALENGTH;I++){if(Data[i]==′$′)file://帧头,SectionID为逗号计数器SectionID=0;
if(Data[i]==10){file://帧尾}if(Data[i]==′,′)file://逗号计数SectionID++;else{switch(SectionID){case 1:file://提取出时间m_sTime+=Data[i];
break;
case 2:file://判断数据是否可信(当GPS天线能接收到有3颗GPS卫星时为A,可信)if(Data[i]==′A′)GPSParam[m_nNumber].m_bValid=true;
break;
case 3:file://提取出纬度m_sPositionY+=Data[i];
break;
case 5:file://提取出经度m_sPositionX+=Data[i];
break;
case 9:file://提取出日期m_sDate+=Data[i];
break;
default:
break;
}}}2、地理数据处理模块功能定义将从GPS采集到的地理数据处理为系统数据库平台适合的数据。
(1)数据转化现在已将所需信息提取到内存,即时间、日期以及经纬度分别保存在CString型变量m_sTime、m_Data、m_sPositionY和m_sPositionX中。在实际应用中往往要根据需要对其做进一步的运算处理,比如从GPS接收机中获得的时间信息为格林尼治时间,因此需要在获取时间上加8小时才为我国标准时间。而且GPS使用的WGS-84坐标系也与我国采用的坐标系不同,有时也要对此加以变换。而这些变换运算必须通过数值运算完成,因此需要将前面获取的字符型变量转化为数值型变量,这部分工作可放在检测到帧尾完成::strcpy(buf,m_sTime);str.Format("%c%c",buf
,buf[1]);GPSParam[m_nNumber].m_nHour=(atoi(str)+8)%24;file://提取出小时并转化为24小时制北京时间file://buf第2、3字节为分钟,4、5字节为秒,提取方法同上……::strcpy(buf,m_sDate);str.Format("%c%c",buf
,buf[1]);file://提取出月份file://buf第2、3字节为天,4、5字节为年,提取方法同上……::strcpy(buf,m_sPositionY);str.Format("%c%c",buf
,buf[1]);PositionValue=atoi(str);str.Format("%c%c%c%c%c%c%c",buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],buf[8]);GPSParam[m_nNumber].m_dPositionY=PositionValue*60+atof(str);file://提取出纬度……::strcpy(buf,m_sPositionX);if(m_sPositionX.GetLength()==10)file://经度超过90度(如东经125度){str.Format("%c%c%c",buf
,buf[1],buf[2]);PositionValue=atoi(str);str.Format("%c%c%c%c%c%c%c",buf[3],buf[4],buf[5],buf[6],buf[7],buf[8],buf[9]);GPSParam[m_nNumber].m_dPositionX=PositionValue*60+atof(str);file://提取出经度(单位为分)}if(m_sPositionX.GetLength()==9)file://经度未超过90度(如东经89度){file://处理方法同上,只是buf的第0、1字节为度数,2~9为分数。}到此为止,已将时间和经纬度信息提取到GPS结构数组GPSParam中的各个变量中去。
(2)经纬度数据转化为系统数据库平台适合的数据(i)投影变换(经纬度坐标到高斯坐标的变换)由于GPS接收机接收到的是经纬度坐标,因此,首先必须通过高斯投影将其转换成高斯坐标,转换公式如下XB0=C0B-cosB(C1sinB+C2sin3B+C3sin5B)T=tanB;1=L-L0;N=;m0=1cosB;η2=e2cosB式中,L、B为转换前的经纬度坐标;x、y为转换后的高斯坐标;L0为投影带的中央经线坐标;C0、C1、C2、C3为与点位无关而只与椭球参数有关的常数。
(ii)坐标变换(高斯坐标到电子地图坐标的变换)导航中的电子地图是以独立坐标系为基准的,因此,必须将其纳入到高斯平面直角坐标系中。电子地图的变形很小,只需考虑平移和缩放参数。
3、地理数据导入模块功能定义将适合数据库平台的数据加入地图数据文件,更新地理信息。
根据上面1、2两步骤的处理,已经获得车辆行驶经过的路线信息,将这些信息加入相关的文件,就可以在地图上显示出更新的地理信息。
采用了该发明的实时更新车载GPS全球定位系统的地图数据的方法,由于通过采集车辆走过的“陌生”道路的地理经纬度等信息,并将这些有价值的信息加入车载GPS数据库系统,实时更新车载GPS系统之地图数据,消除原来地图的“盲区”,可以使得导航系统在车辆行驶过程中发现新的更佳路径,从而实现更为优化的导航处理;同时,本发明的方法除可以利用于车载GPS全球定位系统外,还可以利用于其它GPS定位系统设备,给人们的出行带来了很大的便利。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
权利要求
1.一种实时更新车载GPS全球定位系统的地图数据的方法,包括GPS定位信息接收系统、通过RS-232串口与其相连接的计算机系统和地图数据库系统,其特征在于,所述的方法包括以下步骤(1)通过GPS定位信息接收系统进行地理定位数据的接收;(2)计算机系统通过串口对接收到的地理定位数据进行信息提取;(3)计算机系统将提取得到的定位信息进行处理,转化为与系统数据库相适合的数据;(4)计算机系统将处理转化后的数据导入地图数据库中。
2.根据权利要求1所述的实时更新车载GPS全球定位系统的地图数据的方法,其特征在于,所述的对接收到的地理定位数据进行信息提取包括以下步骤(1)计算机系统打开与之相连接的串口并设置相应的参数;(2)采用事件触发方式进行地理定位数据接收并将存储于缓存中;(3)计算机系统根据通信协议的帧结构对地理定位数据中的各个定位信息进行提取。
3.根据权利要求2所述的实时更新车载GPS全球定位系统的地图数据的方法,其特征在于,所述的设置串口的参数包括(1)接收两连续字节的最大时间间隔;(2)接收每字节的平均允许时间;(3)接收时间常数。
4.根据权利要求2所述的实时更新车载GPS全球定位系统的地图数据的方法,其特征在于,所述的帧结构包括帧头、帧尾和帧内数据,所述的帧头为“$GPGGA”、“$GPGSA”、“$GPGSV”或“$GPRMC”,所述的帧尾为回车符和换行符,所述的帧内数据为<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>其中<1>——当前位置的格林尼治时间,格式为hhmmss;<2>——状态,A为有效位置,V为非有效接收警告,即当前天线视野上方的卫星个数少于3颗;<3>——纬度,格式为ddmm.mmmm;<4>——标明南北半球,N为北半球、S为南半球;<5>——经度,格式为dddmm.mmmm;<6>——标明东西半球,E为东半球、W为西半球;<7>——地面上的速度,范围为0.0到999.9;<8>——方位角,范围为000.0到359.9度;<9>——日期,格式为ddmmyy;<10>——地磁变化,从000.0到180.0度;<11>——地磁变化方向,为E或W。
5.根据权利要求2所述的实时更新车载GPS全球定位系统的地图数据的方法,其特征在于,所述的提取的定位信息包括日期、时间和经纬度地理坐标。
6.根据权利要求5所述的实时更新车载GPS全球定位系统的地图数据的方法,其特征在于,所述的对提取的定位信息进行处理包括以下步骤(1)将日期转化为年月日信息;(2)将时间转化为24小时制北京时间;(3)将经纬度地理坐标由WGS-84坐标系转换为国际标准经纬度坐标系;(4)将经纬度地理坐标转化为与数据库系统相适合的数据。
7.根据权利要求6所述的实时更新车载GPS全球定位系统的地图数据的方法,其特征在于,所述的经纬度地理坐标的转化包括以下步骤(1)通过投影变换将经纬度地理坐标转化为高斯坐标;(2)通过坐标变换将高斯坐标转化为电子地图坐标。
全文摘要
本发明涉及一种实时更新车载GPS全球定位系统的地图数据的方法,包括GPS定位信息接收系统、通过RS-232串口与其相连接的计算机系统和地图数据库系统,其中所述的方法包括地理定位数据的接收、对接收到的地理定位数据进行信息提取、将提取得到的定位信息进行处理转化、将处理转化后的数据导入地图数据库中。采用该种实时更新车载GPS全球定位系统的地图数据的方法,可以实时更新车载GPS系统之地图数据,使得导航系统在车辆行驶过程中发现新的更佳路径,从而实现更为优化的导航处理;同时,本发明的方法除可以利用于车载GPS全球定位系统外,还可以利用于其它GPS定位系统设备,给人们的出行带来了很大的便利。
文档编号G01S19/42GK1865857SQ20051002605
公开日2006年11月22日 申请日期2005年5月20日 优先权日2005年5月20日
发明者包玲艳, 余波, 蔡世光, 何代水 申请人:英华达(上海)电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1