导航系统的客户端、服务端、及其进行地图更新的方法
技术领域
本发明涉及GPS导航领域,更具体的说,涉及一种导航系统的客户端、服务端,及导航系统的客户端向服务端请求地图更新的方法、与对应的导航系统服务端响应客户端的更新请求的方法。
背景技术
目前,车用全球定位系统(Global Positioning System,GPS)是GPS导航重要应用方向之一。车用GPS导航系统的GPS天线接收来自环绕地球的24颗GPS卫星中的至少3颗所传递的数据信息,结合储存在车用导航终端内的电子地图,通过GPS卫星信号确定的位置坐标与此相匹配,确定导航对象在电子地图中的准确位置。
图1示出了现有的导航系统的结构组成:
所述的导航系统包括:扬声器1、卡盘装置2、输入装置3、声音输出装置4、显示装置5、分别控制卡盘装置2、输入装置3及声音输出装置4的控制装置6、和与控制装置6连接的GPS接收装置16。
所述的控制装置6为微机,如可采用掌上电脑、智能手机、车载终端等。其包括:用户接口控制模块7、地图数据管理模块8及导航模块9;导航模块9主要由导航控制模块10、地图显示模块11、路径引导模块12、路径搜索模块13、信息点检索装置14、自车位置检测模块15构成。
卡盘装置2可以对插入其中的记录有地图数据、控制程序数据等的记录媒体中的记录内容还原成数字数据,并送至送到控制装置6。其记录媒体可以采用例如安全数码卡(Secure Digital Card,SD),闪存卡(TransFlash Card,TF)等。
输入装置3可使用按键、摇杆、旋钮或触摸板等。输入装置3用于输入用户的各种要求,将用户的输入信号送到控制装置6的用户接口控制模块7中。
声音输出装置4将控制装置6送来的声音数据转化为声音信号,送到扬声器1。扬声器1将声音输出装置4送来的声音信号转换成声音并输出,这样,扬声器1就可以配合控制装置6的需要,发出各种操作通知及路径引导的语音。
显示装置5可使用LCD(Liquid Crystal Display)液晶显示器或投影仪或CRT(Cathode Ray Tube)显示器,根据控制装置6送来的显示数据,显示其对应的图像。例如,显示装置5可以显示地图、自车位置标记、已规划路径及用户输入界面等。
GPS接收装置16接收来自GPS卫星的信号,检测车辆的现在位置及移动方向,并将检测到的结果转换成协议数据,这些协议数据进一步被送到控制装置6的导航模块9内的自车位置检测模块15。
控制装置6的用户接口控制模块7接收输入装置3的输入,生成与输入所要求的内容对应的控制指令,送到导航模块9内的一个或多个子模块之中。此外,用户接口控制模块7响应控制指令,并把从导航模块9返回的处理结果,送到声音输出装置4、显示装置5之中。
控制装置6的地图数据管理模块8响应导航模块9的要求从卡盘装置2读出地图数据,这些地图数据中也含有用于图片引导用的数据内容。
导航模块9的导航控制模块10控制并调用导航模块9的其余子模块。
导航模块9的地图显示模块11根据从地图数据管理模块8读出的地图数据信息,生成地图显示用的显示数据,送到用户接口控制模块7。
导航模块9的路径引导模块12从地图数据管理模块8取得地图数据,对其进行路径诱导处理,并把诱导处理结果返回给地图数据管理模块8,以便于地图数据管理模块8进行预测读取。另还将诱导时的界面、导航语音等数据传送给用户接口控制模块7。
导航模块9的路径搜索模块13从地图数据管理模块8取得地图数据,并对其实行路径探索处理,并将路径探索结果返回路径引导模块12。
导航模块9的自车位置检测模块15将从GPS接收装置16得到的表示现在位置的数据,送到地图数据管理模块8、地图显示模块11、路径引导模块12。
在GPS导航系统的应用中,由于实际路况不断在发生变化,因此,需要每隔一段时间对系统内存储的电子地图进行更新。
在中国专利申请:实时更新车载GPS全球定位系统的地图数据的方法(专利申请号:CN200510026055.0;公开号CN1865857:公开日:2006.11.22)中,公开了一种实时更新车载GPS全球定位系统的地图数据的方法,其包括GPS定位信息接收系统、通过RS-232串口与其相连接的计算机系统和地图数据库系统,其中所述的方法包括地理定位数据的接收、对接收到的地理定位数据进行信息提取、将提取得到的定位信息进行处理转化、将处理转化后的数据导入地图数据库中。采用该种实时更新车载GPS全球定位系统的地图数据的方法,可以实现更新车载GPS系统之地图数据的目的。
但是,使用此方案进行地图的实时更新时,都必须同时对整个地图数据进行下载,用户不能根据需要对地图数据进行合理的取舍。
在本公司之前于2008年7月2日提交的中国专利申请:一种导航系统的客户端、服务端、及进行地图更新的方法(专利申请号:CN200810068198.1);2008年7月3日提交的中国专利申请:导航系统的客户端、服务端、及其进行地图更新的方法(专利申请号:CN200810068245.2)分别公开了两种客户端请求服务端进行地图数据更新的方法,可在这上述所有的更新过程中,都存在一个问题:就是一旦系统断电或网络中断等原因造成更新过程中断,需要更新的内容会有一部分传送到客户端、有一部分没有传送到客户端。客户端的需要更新的数据虽然已经有一部分被下载,可是由于其不完整,客户端在正常使用时、或在进行下次更新时就会出现错误。另外,尤其在上述两个本公司的专利申请中,在服务端响应客户端的更新时,为了加快更新的速度、减少更新的流量,服务端每次都需要占用一段较长的时间进行大量的计算选择出客户端需要的数据,而一旦更新过程中断,客户端即使再次请求更新,服务端仍需要再次重新计算,花费的时间较长。
发明内容
为克服上述缺陷,本发明所要解决的技术问题是提供一种更新更加稳定的导航系统的客户端、服务端,及导航系统的客户端向服务端请求地图更新的方法、与对应的导航系统服务端响应客户端的更新请求的方法。
本发明的目的是通过以下技术方案来实现的:
一种导航系统的客户端,包括:
普通更新模块,用于正常情况下和服务端进行更新;
单位传输中断标志生成模块,用于在接收服务端回传的更新数据异常中断时,生成表示此次更新未完成的单位传输中断标志;
异常更新模块,用于上一次的更新数据发送异常中断时,发送单位传输中断标志请求服务器完成上一次的更新任务。
一种导航系统的服务端,包括:
更新请求接收模块,用于接收客户端发送的更新请求;
普通更新响应模块,当更新请求接收模块接收的更新请求为普通更新时工作,用于正常的对客户端发送的更新请求信息生成更新数据,同时在服务端保留此更新数据为最近一次的更新数据;
异常更新响应模块,当更新请求接收模块接收的更新请求为单位传输中断标志时工作,用于将服务端保留的最近一次的更新数据选择回传给客户端。
一种上述导航系统的客户端向服务端请求地图更新的方法,包括以下步骤:
A:检查客户端本地是否存储有上一次更新时未完成的单位传输中断标志,若有,执行步骤B;若没有,执行步骤C;
B:发送单位传输中断标志给服务端,请求服务器完成上一次的传输任务,转步骤D;
C:发送普通的更新请求;转步骤D;
D:接收服务端回传的更新数据,更新客户端的地图数据;当接收服务端回传的更新数据异常中断时,生成表示此次更新未完成的单位传输中断标志。
所述的步骤D中,在生成单位传输中断标志后,自动重新执行步骤B。
所述的步骤D中,服务端回传的更新数据是分别按照预设的规则进行编号后,依次按照顺序发送至客户端的,当客户端在接收服务端回传的更新数据异常中断时,将中断处的编号作为单位传输中断标志。
一种导航系统的服务端响应客户端的更新请求的方法,包括以下步骤:
E:接收客户端发送的更新请求,判断其请求类型,若是普通的更新请求,转步骤F;若是单位传输中断标志,则转步骤G;
F:根据客户端发送的更新请求信息生成更新数据,回传给客户端;同时在服务端保留此更新数据为最近一次的更新数据;
G:根据单位传输中断标志的请求,将服务端保留的最近一次的更新数据选择回传给客户端。
所述的步骤F中,在生成更新数据后,还包括将所述更新数据分别按照预设的规则进行编号后,再依次按照顺序回传给客户端的步骤;所述的步骤G中,客户端发送的单位传输中断标志为传输中断处的编号,服务端从最近一次的更新数据中选择以此编号作为开始的后续数据进行续传。这样的设置可以保证在再次更新时不会重复传送此前更新中断时已传送的图幅。
所述的预设的规则为:对服务端回传的更新数据以其所在的图幅为单位,结合图幅所在图层及其所处位置的经纬度对各图幅进行编号。
所述的对图幅进行编号的规则如下:按照编号的先后顺序为各图幅生成从小到大的编号:首先对下级图层的图幅编号,再对上级图层的图幅编号;对于处于同一图层的图幅,先对处于较高纬度的图幅编号,再对处于较低纬度的图幅编号;若所处纬度相同,则先对处于较小经度的图幅编号,再对处于较大经度的图幅编号;其中,图幅中包含有其所处位置的经纬度信息,或可通过图幅坐标轴原点及图幅长宽推算得到其所处位置的经纬度信息。
所述的步骤F中,将此次更新的相关信息,包括所需传送的图幅、图幅对应的编号进行关联后存储为最近一次的更新数据。
本发明由于在客户端设置表示接收服务端回传的更新数据异常中断时的单位传输中断标志,因而可以对更新异常的情况进行针对性处理;而服务端在响应客户端的更新请求时,同时保存最近一次的更新数据,这样客户端就能直接将其保存的最近一次的更新数据选择回传给客户端,及时的响应客户端发送的异常更新的请求,因此,本发明能对网络中断这种异常情况很好的针对性的进行处理,减少了错误的发生和时间的浪费。
附图说明
图1是现有技术中导航系统的结构示意图;
图2是本发明实施例中,服务端及客户端的电子地图数据图层结构及在图层上进行图幅划分的结构示意图;
图3是本发明实施例中,服务端及客户端中电子地图数据分层及在图层上进行图幅划分的数据结构示意图;
图4是本发明实施例中客户端向服务端请求地图更新的处理流程图;
图5是本发明实施例中服务端响应客户端的更新请求的处理流程图;
图6是本发明实施例中导航系统的客户端的结构示意图;
图7是本发明实施例中导航系统的服务端的结构示意图。
具体实施方式
下面结合附图和较佳的实施例对本发明作进一步说明。
本发明的发明思路为:为了避免更新的过程中发生意外中断,在客户端向服务端请求更新,服务端将整理好的更新数据发送至客户端时,客户端监测发送的情况,当出现接收服务端回传的更新数据异常中断时,生成表示此次更新未完成的单位传输中断标志,并在下一次传输过程中,将单位传输中断标志发送给服务端,请求服务器完成上一次的传输任务,进行重传或者续传。这样就会避免客户端在使用过程中出错或在下次更新时出错。
由于导航系统中的地图数据都是以图层及图幅的形式表达的,而用户在使用导航系统的客户端时,可能仅仅需要某一很小的部分区域的地图,却并不一定需要所有区域的地图,因此,更新地图数据的操作可以图幅为单位来进行处理。
如图2所示,服务端及客户端都存在结构完全一致的电子地图数据图层结构及在图层上进行图幅划分的结构。如图所示,第一层的图幅单元覆盖范围最大,比例尺最小(例如图幅大小500kmX500km,比例尺1/1000km);第二层的图幅单元覆盖范围较小一点,比例尺也要大一点;最后一层的图幅单元覆盖范围最小,比例尺最大(例如图幅大小5kmX5km,比例尺1/25m)。
为了能基于不同的区域(如各行政区域)进行针对性的更新,可在客户端或服务端中分别设置行政区域与各个图层中的各个图幅的对照表;或同时在客户端与服务端中设置完全一致的行政区域与各个图层中的各个图幅的对照表,作为保存了区域与图幅的对应关系的区域更新模块。现以同时在客户端与服务端中设置完全一致的行政区域与各个图层中的各个图幅的对照表的情况为例做进一步介绍。
请参考下表表1和表2,表1为区域与其子区域的数据关系树结构表,示出了各行政区域之间的上下级的隶属关系,去最小到达区县一级。其表现形式也可为树形结构。
表2为区域树中最小的区域(城区或县)与各个图层中的各个图幅的相交关系表,只要当前图幅中涉及到了某区域,即将此图层中的此图幅与区域标识关联,写入表2。例如,如果要找深圳市福田区在图层3上所有相交的图幅,只需在表2中,把区域标识为“福田区标识”,图层为“图层3”的所有记录的图幅提取出来即可。而服务端在接收到客户端传来的区域标识后,对表2进行查询,即可获知该区域在当前图层上关联的图幅。例如,如果用户查找深圳市在图层2上所有关联的图幅,客户端根据表1,找出深圳市的各个最小下级区域“罗湖区、福田区、南山区”,随后在表2中,把区域标识为“罗湖区、福田区、南山区”,图层为“图层2”的所有记录的图幅提取出来即可。
表1:
父区域标识 |
区域标识 |
区域名称 |
全国标识 |
北京市标识 |
北京市 |
北京市标识 |
宣武区标识 |
宣武区 |
全国标识 |
广东省标识 |
广东省 |
广东省标识 |
深圳市标识 |
深圳市 |
深圳市标识 |
罗湖区标识 |
罗湖区 |
... |
... |
... |
表2:
如图3所示,区域20包含4个图幅21。在不同的图层上,同一个区域20可能在对应的包含更多的图幅,当然也可能存在某单一图幅包含除了区域20外的其他多个区域的情况。
在客户端向服务端请求进行地图更新时,服务端按照预设的方式对客户端的更新请求进行响应,客户端对服务端发送来的数据进行接收和解析。而一旦在接收的过程中出现异常中断,客户端就根据中断情况,生成表示此次更新未完成的单位传输中断标志。在客户端进行下次更新时,就会先检测到客户端中保存有单位传输中断标志,并根据此单位传输中断标志请求服务端继续重传或续传,完成上一次中断的传输。
其中,当客户端请求服务端重传时,客户端仅保留一个普通的代表上次更新过程失败的标志即可,请求服务端重新将上一次整理的发送给客户端的数据发送过来。服务端可以在整理好要发送给客户端更新的数据后,先将数据备份在服务端内的更新备份区中,一旦客户端发送重传请求,服务端直接将保存在服务端的更新备份区内的数据发送给客户端即可。
若客户端请求服务端的是续传,则客户端在生成单位传输中断标志时,就还需要对传输过程中产生中断的位置进行标注。在本实施例中,通过对服务端传输的图幅按一定的顺序进行编号,客户端记录中断处的图幅编号作为单位传输中断标志;再请求续传时,客户端发送更新请求和中断处的图幅编号,服务端接收到此编号后,将上一次的更新数据中的,在此图幅编号后的图幅数据续传到客户端,进行续传。
本实施例结合图幅所在图层及其所处位置的经纬度对图幅进行编号,其规则如下:首先对下级图层的图幅编号,再对上级图层的图幅编号;对于处于同一图层的图幅,先对处于较高纬度的图幅编号,再对处于较低纬度的图幅编号;若所处纬度相同,则先对处于较小经度的图幅编号,再对处于较大经度的图幅编号。这样,按照编号顺序生成每个图幅的编号,这样先编号的图幅具有较小的编号,后编号的图幅具有较大的编号。其中,图幅中包含有其所处位置的经纬度信息,或可通过图幅坐标轴原点及图幅长宽推算得到其所处位置的经纬度信息。
在编号完成后,服务端将图幅按照编号由小到大的顺序传送至客户端,并将此次更新的相关信息,包括所需传送的图幅、图幅对应的编号与接收自客户端的更新标志进行关联后存储。若在传送中发生意外中断,客户端仅需请求续传,将本次更新的更新标志以及所接收到的图幅中的最大的编号传送至服务端。服务端在接收该编号后,根据该更新标志关联的信息,继续传送编号大于该图幅编号的图幅数据,如此,即可保证在再次更新时不会重复传送此前更新中断时已传送的图幅。
其中,客户端请求更新的模式可采用本公司之前于2008年7月2日提交的中国专利申请:一种导航系统的客户端、服务端、及进行地图更新的方法(专利申请号:CN200810068198.1);2008年7月3日提交的中国专利申请:导航系统的客户端、服务端、及其进行地图更新的方法(专利申请号:CN200810068245.2)中公开的各种更新模式,如区域更新等,只需分别为不同的数据包进行编号,即可识别更新中断点。客户端在异常中断后再进行续传的时候,在传送代表了更新模式的更新标志的同时,传送单位传输中断标志即可。更新模式及其对应的更新标志的设置可参看上述专利。
如图4所示,导航系统的客户端向服务端请求地图更新的处理流程如下:
S101:客户端检查本地是否存储有上一次更新时未完成的单位传输中断标志,若有,执行步骤S102;若没有,执行步骤S103;
S102:发送本次更新的更新标志和单位传输中断标志给服务端,请求服务器完成上一次的传输任务,转步骤S104;
S103:发送普通的更新请求;转步骤S104;
S104:接收服务端回传的更新数据,更新客户端的地图数据;
S105:检查检查在更新过程中是否发生了中断,若检查到接收服务端回传的更新数据异常中断,转步骤S106,否则转步骤S107;
S106:将所接收到的图幅中的最大的编号作为表示此次更新未完成的单位传输中断标志,继续执行步骤S102;
S107:完成此次更新。
如图5所示,服务端响应客户端的更新请求的处理流程如下,包括以下步骤:
S201:接收客户端发送的更新请求,
S202:判断其请求类型,若是普通的更新请求,转步骤S203;若是单位传输中断标志,则转步骤S205;
S203:根据客户端发送的更新请求信息生成更新数据;
S204:将生成的更新数据以图幅为单位分别进行打包,并按一定的规则为上述数据包进行编号;
S205:服务端将图幅按照编号由小到大的顺序传送至客户端,并将此次更新的相关信息,包括所需传送的图幅、图幅对应的编号与接收自客户端的更新标志进行关联后存储为最近一次的更新数据;同时将服务端上一次保存的更新数据清除;
S206:根据单位传输中断标志的请求,解析得到客户端传送过来的终端出的图幅编号,在服务端保留的最近一次的更新数据中选择编号大于该图幅编号的图幅数据续传给客户端。
本发明所述的导航系统的客户端,如图6所示,包括:
普通更新模块,用于正常情况下和服务端进行更新;
单位传输中断标志生成模块,用于在接收服务端回传的更新数据异常中断时,生成表示此次更新未完成的单位传输中断标志;
异常更新模块,用于上一次的更新数据发送异常中断时,发送单位传输中断标志请求服务器完成上一次的更新任务。
本发明所述的导航系统的服务端,如图7所示,包括:
更新请求接收模块,用于接收客户端发送的更新请求;
普通更新响应模块,当更新请求接收模块接收的更新请求为普通更新时工作,用于正常的对客户端发送的更新请求信息生成更新数据,同时在服务端保留此更新数据为最近一次的更新数据;
异常更新响应模块,当更新请求接收模块接收的更新请求为单位传输中断标志时工作,用于将服务端保留的最近一次的更新数据选择回传给客户端。
所述的普通更新相应模块还包括编号子模块,用于将所述更新数据分别按照预设的规则进行编号后,再依次按照顺序回传给客户端。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。