著录项信息
专利名称 | 一种导航系统的客户端、服务端、及进行地图更新的方法 |
申请号 | CN200810068198.1 | 申请日期 | 2008-07-02 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2008-12-10 | 公开/公告号 | CN101319911 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G01C21/32 | IPC分类号 | G;0;1;C;2;1;/;3;2;;;G;0;9;B;2;9;/;1;0查看分类表>
|
申请人 | 凯立德欣技术(深圳)有限公司 | 申请人地址 | 广东省深圳市福田区天安数码城创新科技广场B-908
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 深圳市凯立德科技股份有限公司,深圳市凯立德计算机系统技术有限公司 | 当前权利人 | 深圳市凯立德科技股份有限公司,深圳市凯立德计算机系统技术有限公司 |
发明人 | 张文星 |
代理机构 | 深圳新创友知识产权代理有限公司 | 代理人 | 邢涛 |
摘要
本发明公开了一种导航系统的客户端、服务端、及其进行地图更新的方法,其中,客户端向服务端请求地图更新的方法包括:客户端获得当前需要更新的区域,向服务端发送指定区域的更新请求及能反映所请求区域当前的更新状态的版本信息;客户端接收服务端返回的数据,并对其进行解析,得到服务端中发生了更新的相应区域的地图要素数据,根据地图要素数据更新客户端相应区域的地图数据及版本信息。本发明由于由客户端向服务端发送指定区域的更新请求及版本信息,服务端只将指定区域中根据版本信息确定的发生了更新的信息发送给客户端,由客户端解析后,根据上述信息更新客户端的地图数据,因此,更新过程较为简单,提高了更新速度。
1.一种导航系统的客户端,包括:
客户端地图数据存储模块,用于存储客户端的地图要素数据;
客户端区域更新模块,用于保存区域与图幅的对应关系,其中,所述的客户端内,每个区域分别对应的设有能反映当前区域的更新状态的版本信息;
客户端数据发送模块,用于将指定区域的更新请求及版本号发送给服务端;
客户端数据接收模块,用于接收服务端发送来的数据;
数据解析更新模块,用于将客户端数据接收模块得到的数据进行解析,得到服务端中指定区域内发生了更新的地图要素数据;并根据此地图要素数据更新客户端地图数据存储模块中的指定区域的地图要素数据及其版本信息;
其特征在于:所述客户端区域更新模块中还包括区域关系子模块和区域细化子模块;
区域关系子模块,用于保存反映了各行政区域之间的上下级的隶属关系的区域与其子区域的数据关系树结构表;
区域细化子模块,用于对当前需要更新的区域进行细化分解为最小子区域,直至每个分解后的最小子区域都不再包含下一级子区域;区域细化子模块将用户请求更新的区域细化成为最小子区域后,将细化的最小子区域的区域标识及各最小子区域对应的版本号通知客户端数据发送模块以发送至服务端。
2.一种导航系统的服务端,包括:
服务端数据接收模块,用于接收客户端发送来的指定区域的更新请求及版本号;
服务端地图数据存储模块,用于存储服务端的地图要素数据、及能反映各区域当前的更新状态的版本信息;
服务端区域更新模块,用于保存区域与图幅的对应关系,其中,每个区域分别对应的设有能反映当前区域的更新状态的版本信息;
地图要素数据匹配模块,用于在服务端地图数据存储模块中查找与所述服务端数据接收模块接收到的客户端的更新请求及版本号匹配的地图要素数据;
服务端数据发送模块,用于将地图要素数据匹配模块搜集到的请求区域内发生了更新的地图要素数据发送给客户端;
其特征在于:所述区域还包含有下一级的子区域,以及区域与其子区域的数据关系树结构表;
其中,若所述服务端数据接收模块接收到的信息为请求区域分解细化后的最小子区域对应的版本信息,则所述地图要素数据匹配模块、服务端数据发送模块执行以下步骤:
D11:比较客户端发送的上述区域的版本信息与服务端保存的相应区域的版本信息,若发现版本信息相同,则反馈不需更新的信息给客户端;若发现服务端的对应区域的版本信息更加新,则执行步骤D12;
D12:将客户端发送来的每个最小子区域的版本号与服务端内对应区域的版本号进行一一对比,判断哪些最小子区域进行了更新,针对更新了的最小子区域执行步骤D13;
D13:对于图幅保存有图幅版本号的服务端,先获得此区域内对应覆盖的图幅,将客户端的区域的版本号与服务端的此区域所对应的所有图幅的图幅版本号相比较,跳过所有版本号不晚于客户端发送的区域的版本号的图幅,将所有的版本号晚于客户端发送的区域的版本号的图幅数据或此图幅数据内进行更新了的数据项整理发送至客户端;
对于图幅保存有图幅更新时间的服务端,则先获得此区域内对应覆盖的图幅,将客户端的区域的版本号对应的更新时间与服务端的此区域所对应的所有图幅的图幅更新时间相比较,跳过所有图幅更新时间不晚于客户端发送的区域版本号对应的更新时间的图幅,将所有的图幅更新时间晚于客户端发送的区域的版本号对应的更新时间的图幅数据或此图幅数据内进行更新了的数据项整理发送至客户端。
3.一种导航系统的客户端向服务端请求地图更新的方法,包括以下步骤:
A:客户端获得当前需要更新的区域,向服务端发送指定区域的更新请求及能反映所请求区域当前的更新状态的版本信息;
B:客户端接收服务端返回的数据,并对其进行解析,得到服务端中发生了更新的相应区域的地图要素数据,根据地图要素数据更新客户端相应区域的地图数据及版本信息,其特征在于,
所述的客户端内设有区域关系子模块,用于保存反映了各行政区域之间的上下级的隶属关系的区域与其子区域的数据关系树结构表;
所述的步骤A中还包括查询所要更新的区域的分级结构的步骤,通过查询区域与其子区域的数据关系树结构表作如下处理:当所要更新的区域不具有子区域,则直接将该区域对应的版本信息发送至服务端;当所要更新的区域具有子区域,则对当前需要更新的区域进行细化分解为最小子区域,直至每个分解后的最小子区域都不再包含下一级子区域;以所有的最小子区域作为指定区域,将各最小子区域对应的版本信息发送至服务端。
4.如权利要求3所述的导航系统的客户端向服务端请求地图更新的方法,其特征在于,所述的步骤A中,还包括将客户端当前导航用的所显示的图层的标志发送给服务端的步骤。
5.一种导航系统的服务端响应客户端的更新请求的方法,包括以下步骤:
C:服务端接收客户端发送的指定区域的更新请求及能反映所请求区域当前的更新状态的版本信息;
D:在服务端的指定区域的地图数据中查找所有在步骤C中的版本信息所代表的更新时间后所产生了更新的地图要素数据,发送给客户端,所述的服务端内设有服务端区域更新模块,用于保存区域与图幅的对应关系,其中,每个区域分别对应的设有能反映当前区域的更新状态的版本信息;另外,所述服务端内设有用于保存版本信息与此版本信息生成时所对应的更新时间的版本信息更新时间表,其特征在于,所述的客户端内设有区域关系子模块,用于保存反映了各行政区域之间的上下级的隶属关系的区域与其子区域的数据关系树结构表;
所述的步骤D中,若服务端接收到的信息为请求区域分解细化后的最小子区域对应的版本信息,则执行以下步骤:
D11:比较客户端发送的上述区域的版本信息与服务端保存的相应区域的版本信息,若发现版本信息相同,则反馈不需更新的信息给客户端;若发现服务端的对应区域的版本信息更加新,则执行步骤D12;
D12:将客户端发送来的每个最小子区域的版本号与服务端内对应区域的版本号进行一一对比,判断哪些最小子区域进行了更新,针对更新了的最小子区域执行步骤D13;
D13:对于图幅保存有图幅版本号的服务端,先获得此区域内对应覆盖的图幅,将客户端的区域的版本号与服务端的此区域所对应的所有图幅的图幅版本号相比较,跳过所有版本号不晚于客户端发送的区域的版本号的图幅,将所有的版本号晚于客户端发送的区域的版本号的图幅数据或此图幅数据内进行更新了的数据项整理发送至客户端;
对于图幅保存有图幅更新时间的服务端,则先获得此区域内对应覆盖的图幅,将客户端的区域的版本号对应的更新时间与服务端的此区域所对应的所有图幅的图幅更新时间相比较,跳过所有图幅更新时间不晚于客户端发送的区域版本号对应的更新时间的图幅,将所有的图幅更新时间晚于客户端发送的区域的版本号对应的更新时间的图幅数据或此图幅数据内进行更新了的数据项整理发送至客户端。
6.如权利要求5所述的导航系统的服务端响应客户端的更新请求的方法,其特征在于,
所述的步骤D中,若服务端接收到客户端发送的客户端当前导航用的所显示的图层的标志,则在将各发生了更新的图幅的图幅数据发送至客户端时,先发送与客户端当前导航用的所显示的图层上的图幅;再发送其他图层上的图幅。
一种导航系统的客户端、服务端、及进行地图更新的方法\n技术领域\n[0001] 本发明涉及GPS导航领域,更具体的说,涉及一种导航系统的客户端、服务端,及导航系统的客户端向服务端请求地图更新的方法、与对应的导航系统服务端响应客户端的更新请求的方法。\n背景技术\n[0002] 目前,车用全球定位系统(Global Positioning System,GPS)是GPS导航重要应用方向之一。车用GPS导航系统的GPS天线接收来自环绕地球的24颗GPS卫星中的至少\n3颗所传递的数据信息,结合储存在车用导航终端内的电子地图,通过GPS卫星信号确定的位置坐标与此相匹配,确定导航对象在电子地图中的准确位置。\n[0003] 图1示出了现有的导航系统的结构组成:\n[0004] 所述的导航系统包括:扬声器1、卡盘装置2、输入装置3、声音输出装置4、显示装置5、分别控制卡盘装置2、输入装置3及声音输出装置4的控制装置6、和与控制装置6连接的GPS接收装置16。\n[0005] 所述的控制装置6为微机,如可采用掌上电脑、智能手机、车载终端等。其包括:用户接口控制模块7、地图数据管理模块8及导航模块9;导航模块9主要由导航控制模块10、地图显示模块11、路径引导模块12、路径搜索模块13、信息点检索装置14、自车位置检测模块15构成。\n[0006] 卡盘装置2可以对插入其中的记录有地图数据、控制程序数据等的记录媒体中的记录内容还原成数字数据,并送至送到控制装置6。其记录媒体可以采用例如安全数码卡(Secure Digital Card,SD),闪存卡(TransFlash Card,TF)等。\n[0007] 输入装置3可使用按键、摇杆、旋钮或触摸板等。输入装置3用于输入用户的各种要求,将用户的输入信号送到控制装置6的用户接口控制模块7中。\n[0008] 声音输出装置4将控制装置6送来的声音数据转化为声音信号,送到扬声器1。扬声器1将声音输出装置4送来的声音信号转换成声音并输出,这样,扬声器1就可以配合控制装置6的需要,发出各种操作通知及路径引导的语音。\n[0009] 显示装置5可使用LCD(Liquid Crystal Display)液晶显示器或投影仪或CRT(Cathode Ray Tube)显示器,根据控制装置6送来的显示数据,显示其对应的图像。例如,显示装置5可以显示地图、自车位置标记、已规划路径及用户输入界面等。\n[0010] GPS接收装置16接收来自GPS卫星的信号,检测车辆的现在位置及移动方向,并将检测到的结果转换成协议数据,这些协议数据进一步被送到控制装置6的导航模块9内的自车位置检测模块15。\n[0011] 控制装置6的用户接口控制模块7接收输入装置3的输入,生成与输入所要求的内容对应的控制指令,送到导航模块9内的一个或多个子模块之中。此外,用户接口控制模块7响应控制指令,并把从导航模块9返回的处理结果,送到声音输出装置4、显示装置5之中。\n[0012] 控制装置6的地图数据管理模块8响应导航模块9的要求从卡盘装置2读出地图数据,这些地图数据中也含有用于图片引导用的数据内容。\n[0013] 导航模块9的导航控制模块10控制并调用导航模块9的其余子模块。\n[0014] 导航模块9的地图显示模块11根据从地图数据管理模块8读出的地图数据信息,生成地图显示用的显示数据,送到用户接口控制模块7。\n[0015] 导航模块9的路径引导模块12从地图数据处理模块8取得地图数据,对其进行路径诱导处理,并把诱导处理结果返回给地图数据管理模块11,以便于地图数据管理模块11进行预测读取。另还将诱导时的界面、导航语音等数据传送给用户接口控制模块7。\n[0016] 导航模块9的路径搜索模块13从地图数据管理模块8取得地图数据,并对其实行路径探索处理,并将路径探索结果返回路径引导模块12。\n[0017] 导航模块9的自车位置检测模块15将从GPS接收装置16得到的表示现在位置的数据,送到地图数据管理模块8、地图显示模块11、路径引导模块12。\n[0018] 中华人民共和国国家知识产权局在专利申请文件“电子地图数据存储与更新的方法”(公开日:2005年01月26日、公开号:CN1570565A、申请号:200410018119.8,以下称之为专利文献1)中,公开了一种电子地图数据存储与更新的方法,包括以下步骤:\n[0019] a)对电子地图数据中的地图要素编码,确定地图要素的ID;\n[0020] b)根据地图要素ID将地图要素及地图要素之间关系的数据存储到地图数据服务端的地图信息存储装置中相应的存储区;\n[0021] c)从地图数据服务端的地图信息存储装置中提取一项或多项地图要素及地图要素之间关系的数据,并且获得相关的地图要素ID及其更新状态;\n[0022] 其中,所述电子地图数据存储与更新方法还包括以下步骤:\n[0023] d)地图数据服务端利用通讯网络将步骤c提取的地图要素ID及其更新状态,传输到地图数据应用端;\n[0024] e)将通过步骤d获得的地图要素ID及其更新状态与存储在所述地图数据应用端的地图信息存储装置中的地图要素ID及其更新状态进行比较;\n[0025] f)根据步骤e的比较结果选取需要更新的地图要素ID,利用通讯网络将需要更新的地图要素ID传输到地图数据服务端;\n[0026] g)在地图数据服务端,根据步骤f获得的地图要素ID,从步骤c提取的地图要素及地图要素之间关系的数据中选择需要更新的数据,传输到地图数据应用端;\n[0027] h)根据地图要素ID将步骤g得到的地图要素和地图要素之间关系的数据及其更新状态存储到地图数据应用端的地图信息存储装置中相应的存储区。\n[0028] 专利文献1中,为了能够找出客户端的地图与服务端的地图的不同之处,仅针对不同的地图要素进行更新,以减少需要更新的数据流量,因此采用地图要素作进行更新的最小通信单位。但因为各地图要素的粒度太小,而通常需要更改的地图要素的数量又太多,这就又使得实际执行更新时,需要为了确定地图要素而反复与服务端通信,而更新所需的网络流量、耗费的时间相对于确定更新范围时所需的网络流量、耗费时间相差无己,大量的时间花费在确定需要更新的地图要素上,造成网络资源的浪费。\n[0029] 在常见的导航电子地图数据结构中,地图要素ID会细分到每个POI信息点,道路,链路等信息,那么,先从服务端下载兴趣点、道路、链路等地图要素的能反映服务端地图数据的更新状态的更新状态信息到客户端,以确定客户端需要针对哪些地图要素请求更新,再进一步执行每个地图要素的实际更新操作,由于地图要素的数量是很大的,这个下载服务端地图的更新状态信息及确定要更新的地图要素过程将会是非常耗时的。另外,由于小粒度的地图要素的更新状态信息要先下载到本地,进行比较,再向服务端索要发生了更新的地图要素,这样,在将服务器端的地图要素ID的更新信息下载到本地后,服务器端的地图要素可能会产生了新的更新,就可能造成下载到本地的更新信息与服务器端的更新信息不同步的问题,要保持服务端的地图要素与客户端下载的地图要素ID的更新信息的完全同步,其所需的开发技术异常复杂,应用的键壮性因此变得脆弱,更新过程较为复杂。\n发明内容\n[0030] 为克服上述缺陷,本发明所要解决的技术问题是提供一种更新过程较为简单的、可局部更新的导航系统的客户端、服务端,及导航系统的客户端向服务端请求地图更新的方法、与对应的导航系统服务端响应客户端的更新请求的方法。\n[0031] 本发明的目的是通过以下技术方案来实现的:\n[0032] 一种导航系统的客户端,其包括:\n[0033] 客户端地图数据存储模块,用于存储客户端的地图要素数据;\n[0034] 客户端区域更新模块,用于保存区域与图幅的对应关系,其中,所述的客户端内,每个区域分别对应的设有能反映当前区域的更新状态的版本信息;\n[0035] 客户端数据发送模块,用于将指定区域的更新请求及版本号发送给服务端;\n[0036] 客户端数据接收模块,用于接收服务端发送来的数据;\n[0037] 数据解析更新模块,用于将客户端数据接收模块得到的数据进行解析,得到服务端中指定区域内发生了更新的地图要素数据;并根据此地图要素数据更新客户端地图数据存储模块中的指定区域的地图要素数据及其版本信息。\n[0038] 一种导航系统的服务端,其包括:\n[0039] 服务端数据接收模块,用于接收客户端发送来的指定区域的更新请求及版本号;\n[0040] 服务端地图数据存储模块,用于存储服务端的地图要素数据、及能反映各区域当前的更新状态的版本信息;\n[0041] 服务端区域更新模块,用于保存区域与图幅的对应关系,其中,每个区域分别对应的设有能反映当前区域的更新状态的版本信息;\n[0042] 地图要素数据匹配模块,用于在服务端地图数据存储模块中查找与客户端接收模块接收到的客户端的更新请求及版本号匹配的地图要素数据;\n[0043] 服务端数据发送模块,用于将地图要素数据匹配模块搜集到的请求区域内发生了更新的地图要素数据发送给客户端。\n[0044] 一种导航系统的客户端向服务端请求地图更新的方法,其包括以下步骤:\n[0045] A:客户端获得当前需要更新的区域,向服务端发送指定区域的更新请求及能反映所请求区域当前的更新状态的版本信息;\n[0046] B:客户端接收服务端返回的数据,并对其进行解析,得到服务端中发生了更新的相应区域的地图要素数据,根据地图要素数据更新客户端相应区域的地图数据及版本信息。\n[0047] 所述的客户端内设有区域关系子模块,用于保存反映了各行政区域之间的上下级的隶属关系的区域与其子区域的数据关系树结构表;\n[0048] 所述的步骤A中还包括通过查询区域与其子区域的数据关系树结构表,对当前需要更新的区域进行细化分解为最小子区域,直至每个分解后的最小子区域都不再包含下一级子区域;以所有的最小子区域作为指定区域,将各最小子区域对应的版本信息发送至服务端的步骤。这样的设计可以更详细的确定客户端的地图数据的更新状态,避免客户端重复更新。\n[0049] 所述的步骤A中,还包括将客户端当前导航用的所显示的图层的标志发送给服务端的步骤。\n[0050] 一种导航系统的服务端响应客户端的更新请求的方法,其包括以下步骤:\n[0051] C:服务端接收客户端发送的指定区域的更新请求及能反映所请求区域当前的更新状态的版本信息;\n[0052] D:在服务端的指定区域的地图数据中查找所有在步骤C中的版本信息所代表的更新时间后所产生了更新的地图要素数据,发送给客户端。\n[0053] 所述的服务端内设有服务端区域更新模块,用于保存区域与图幅的对应关系,其中,每个区域分别对应的设有能反映当前区域的更新状态的版本信息;另外,所述服务端内设有用于保存版本信息与此版本信息生成时所对应的更新时间的版本信息更新时间表。\n[0054] 所述的步骤D中,包括以下步骤:\n[0055] D01:比较客户端发送的上述区域的版本信息与服务端保存的相应区域的版本信息,若发现版本信息相同,则反馈不需更新的信息给客户端;若发现服务端的对应区域的版本信息更加新,则执行步骤D2;\n[0056] D02:对于图幅保存有图幅版本号的服务端,先获得此区域内对应覆盖的图幅,将客户端的区域的版本号与服务端的此区域所对应的所有图幅的图幅版本号相比较,跳过所有版本号不晚于客户端发送的区域的版本号的图幅,将所有的版本号晚于客户端发送的区域的版本号的图幅数据或此图幅数据内进行更新了的数据项整理发送至客户端;\n[0057] 对于图幅保存有图幅更新时间的服务端,则先获得此区域内对应覆盖的图幅,将客户端的区域的版本号对应的更新时间与服务端的此区域所对应的所有图幅的图幅更新时间相比较,跳过所有图幅更新时间不晚于客户端发送的区域版本号对应的更新时间的图幅,将所有的图幅更新时间晚于客户端发送的区域的版本号对应的更新时间的图幅数据或此图幅数据内进行更新了的数据项整理发送至客户端。\n[0058] 所述的客户端内设有区域关系子模块,用于保存反映了各行政区域之间的上下级的隶属关系的区域与其子区域的数据关系树结构表;\n[0059] 所述的步骤D中,若服务端接收到的信息为请求区域分解细化后的最小子区域对应的版本信息,则执行以下步骤:\n[0060] D11:比较客户端发送的上述区域的版本信息与服务端保存的相应区域的版本信息,若发现版本信息相同,则反馈不需更新的信息给客户端;若发现服务端的对应区域的版本信息更加新,则执行步骤D12;\n[0061] D12:将客户端发送来的每个最小子区域的版本号与服务端内对应区域的版本号进行一一对比,判断哪些最小子区域进行了更新,针对更新了的最小子区域执行步骤D13;\n[0062] D13:对于图幅保存有图幅版本号的服务端,先获得此区域内对应覆盖的图幅,将客户端的区域的版本号与服务端的此区域所对应的所有图幅的图幅版本号相比较,跳过所有版本号不晚于客户端发送的区域的版本号的图幅,将所有的版本号晚于客户端发送的区域的版本号的图幅数据或此图幅数据内进行更新了的数据项整理发送至客户端;\n[0063] 对于图幅保存有图幅更新时间的服务端,则先获得此区域内对应覆盖的图幅,将客户端的区域的版本号对应的更新时间与服务端的此区域所对应的所有图幅的图幅更新时间相比较,跳过所有图幅更新时间不晚于客户端发送的区域版本号对应的更新时间的图幅,将所有的图幅更新时间晚于客户端发送的区域的版本号对应的更新时间的图幅数据或此图幅数据内进行更新了的数据项整理发送至客户端。\n[0064] 所述的步骤D中,若服务端接收到客户端发送的客户端当前导航用的所显示的图层的标志,则在将各发生了更新的图幅的图幅数据发送至客户端时,先发送与客户端当前导航用的所显示的图层上的图幅;再发送其他图层上的图幅。\n[0065] 由于在更新过程中,由客户端向服务端发送指定区域的更新请求及能反映所请求区域当前的更新状态的版本信息,服务端根据版本信息确定服务端中哪些内容与客户端相比是更新过的,只将服务端的指定区域中发生了更新的信息发送给客户端,由客户端解析后,根据上述信息更新客户端的地图数据,因此,更新过程较为简单;由于其可以针对客户端的实际需要选择部分区域进行局部更新,因而进一步提高了其更新速度。\n附图说明\n[0066] 图1是现有技术中导航系统的结构示意图;\n[0067] 图2是本发明实施例中,电子地图数据图层结构及在图层上进行图幅划分的结构示意图;\n[0068] 图3是本发明实施例中,区域与其覆盖的图幅的对应关系示意图;\n[0069] 图4是本发明实施例中区域与其子区域的数据关系树的结构示意图;\n[0070] 图5是本发明实施例中客户端的地图数据的图幅数据组织结构示意图;\n[0071] 图6是本发明实施例中服务端图幅的数据结构示意图;\n[0072] 图7是本发明实施例中服务端的图幅道路数据集的数据结构示意图;\n[0073] 图8是本发明实施例中服务端向客户端发送数据的打包格式示意图;\n[0074] 图9是本发明实施例中客户端向服务端请求地图更新的处理流程图;\n[0075] 图10是本发明实施例中服务端响应客户端的更新请求的处理流程图。\n具体实施方式\n[0076] 下面结合附图和较佳的实施例对本发明作进一步说明。\n[0077] 本发明的发明思路为:客户端的用户根据自身需要选择一定的区域,如城区、市、省等行政区域来对电子地图进行更新;同时发送能反映客户端地图数据当前的更新状态的版本信息到服务端,向服务端要求请求区域内的所有新更新的地图数据,服务端根据客户端发送的版本信息查找,确定服务端中哪些内容是与客户端相比时更新过的,服务端认为其内版本高于用户请求的版本的地图数据为客户端需要的、发生了更新的增、删、改的数据,将所有满足此更新条件的数据按照一定的格式打包,一次性的发送给客户端即可。客户端对服务端发送来的数据进行解析后,根据上述信息更新客户端的地图数据。因此,本发明的客户端与服务端之间只需进行一次相互的通信即可,明显减少了客户端每次更新的时间。\n[0078] 如图2所示,服务端及客户端都存在结构完全一致的电子地图数据图层结构及在图层上进行图幅划分的结构。其中,第一层的图幅单元51覆盖范围最大,比例尺最小(例如图幅大小500kmX500km,比例尺1/1000km);第二层的图幅单元53覆盖范围较小一点,比例尺也要大一点;依次直至最后一层的图幅单元55覆盖范围最小,比例尺最大(例如图幅大小5kmX5km,比例尺1/25m)。\n[0079] 为了能基于不同的区域(如各行政区域)进行针对性的更新,可在客户端或服务端中分别设置行政区域与各个图层中的各个图幅的对照表;或同时在客户端与服务端中设置完全一致的行政区域与各个图层中的各个图幅的对照表,作为保存了区域与图幅的对应关系的区域更新模块。现以同时在客户端与服务端中设置完全一致的行政区域与各个图层中的各个图幅的对照表的情况为例做进一步介绍。\n[0080] 请参考下表表1和表2,表1为区域与其子区域的数据关系树结构表,示出了各行政区域之间的上下级的隶属关系,去最小到达区县一级。其表现形式也可为如图4所示的树形结构。\n[0081] 表2为区域树中最小的区域(城区或县)与各个图层中的各个图幅的相交关系表,只要当前图幅中涉及到了某区域,即将此图层中的此图幅与区域标识关联,写入表2。例如,如果要找深圳市福田区在图层3上所有相交的图幅,只需在表2中,把区域标识为“福田区标识”,图层为“图层3”的所有记录的图幅提取出来即可。而服务端在接收到客户端传来的区域标识后,对表2进行查询,即可获知该区域在当前图层上关联的图幅。例如,如果用户查找深圳市在图层2上所有关联的图幅,客户端根据表1或图4,找出深圳市的各个最小下级区域“罗湖区、福田区、南山区”,随后在表2中,把区域标识为“罗湖区、福田区、南山区”,图层为“图层2”的所有记录的图幅提取出来即可。\n[0082] 表1:\n[0083] \n[0084] \n 父区域标识 区域标识 区域名称\n 全国标识 北京市标识 北京市\n 北京市标识 宣武区标识 宣武区\n 全国标识 广东省标识 广东省\n 广东省标识 深圳市标识 深圳市\n 深圳市标识 罗湖区标识 罗湖区\n … … …\n[0085] 表2:\n[0086] \n[0087] 如图3所示,区域20包含4个图幅21。在不同的图层上,同一个区域20可能在对应的包含更多的图幅,当然也可能存在某单一图幅包含除了区域20外的其他多个区域的情况。区域20对应的设有用于存储其区域的区域标识与版本号的区域参数信息,其中,每一版本号对应一更新时间。如,可在服务端设置不同的版本号对应的更新时间,来确定版本号之间的相互关系;或通过版本号本身携带的号码信息,确定不同的版本号之间的先后更新关系。\n[0088] 由于导航系统中的地图数据都是以图层及图幅的形式表达的,而用户在使用导航系统的客户端进行导航时,在某一时刻可能仅仅需要某一很小的部分区域的地图,却并不一定需要所有区域的地图,因此,为了更好的便于处理,在本发明的技术方案中,对电子数据的更新操作是以图幅为组织单位来进行处理的。\n[0089] 在地图数据中,区域中可能还包含有下一级的子区域。如图4所示,本发明客户端中,每一上级区域均包可含若干下级区域。根据实际使用需要,在本实施例中,最小的子区域可达到城区或县一级。而由于在实际应用时,地图的版本更新可能只是部分图幅的更新。\n因此,客户端的地图数据中,还设有用于保存客户端总最后更新时间的总更新时间参数,和图幅数据结构中设有的保存此图幅的最后更新时间的图幅更新时间参数,和数据集数据结构中设有的保存此数据集的最后更新时间的数据集更新时间参数,如图5所示。\n[0090] 但在服务端的图幅数据结构中,为了适合在线更新的需要,图幅自身设有保存此图幅的最后更新时间的图幅更新时间参数,如图6所示,而且各数据集、及数据集中的数据项也分别设有用于保存其本身的最后更新时间的数据集更新时间参数及数据项更新时间参数。其中,图幅更新时间参数中保存的图幅的最后更新时间为当前图幅中的各数据集本身的最后更新时间的最迟者;而各数据集的数据集更新时间参数中保存的数据集的最后更新时间则为各数据项的更新时间的最迟者。当然,上述图幅更新时间也可以用与图幅更新时间向关联的图幅版本号代替。\n[0091] 图6示出了本实施例的服务端图幅的数据结构。其中,不同比例尺的图层分别保存不同的数据集合,如,所有的周边兴趣点数据集合仅保存在某一个图层中,其它层是没有此周边兴趣点数据集合的。图7示出了本实施例服务端的图幅道路数据集的数据结构,其他的服务端数据集如地表数据集,周边兴趣点数据集,信息点文本数据集也类似地,各数据子项都具有数据项的更新时间、是否删除标志,在此不一一列举其示意图。\n[0092] 其中,图6、图7中出现的各名词的含义及用途如下:\n[0093] 数据项:即为图幅中各数据集中的地图要素数据,例如道路数据集中的道路及其节点,地表数据中的地表形状及其节点,周边兴趣点数据中的兴趣点,信息点文本数据中的文本图符等。各地图要素数据项具有自己的标识ID,客户端与服务端正是通过数据项的标识ID来找到地图要素,以对照维护其更新状态的。\n[0094] 数据项更新时间:各数据集中的各地图要素数据项的更新时间,即该数据项最后一次发生加入、修改或删除时的时刻。\n[0095] 数据项是否删除标志:数据项已被删除的标志。\n[0096] 数据集的更新时间:数据集中最后一次发生数据项更新行为的时间。每个数据集都有的更新时间,例如附图6中的道路数据更新时间,地表数据更新时间,周边兴趣点更新时间,信息点文本数据更新时间。\n[0097] 图幅更新时间:各数据集中最后一次发生数据项更新行为的时间,即道路数据更新时间、地表数据更新时间、周边兴趣点更新时间、信息点文本数据更新时间中的最迟者。\n[0098] 在服务端的图幅数据进行更新时,会更新其所在的区域的版本号为最新的版本号,同时为此版本号关联更新时间。比如,若某图幅产生了更新,首先更新其直接隶属的最底层的子区域的版本号,同时更新其隶属的上级区域的版本号。如:区域A(设其版本号为a)包括子区域B(设其版本号为b)和子区域C(设其版本号为c),子区域B在7月产生了更新,则将子区域B的版本号升级为新版本号(如b1),同时,将区域A的版本号也升级为新版本号(如b1)。其后子区域C在8月产生了更新,则将子区域B的版本号升级为新版本号(如c1),同时,将区域A的版本号也升级为新版本号(如c1)。\n[0099] 在客户端请求进行更新时,可采用以下三种模式:\n[0100] 第一种模式:\n[0101] 在客户端的用户请求对某区域内的地图数据进行更新时,客户端发送用户选择的区域标识及此区域的版本号至服务端,服务端首先将客户端发送的上述区域的版本号与服务端保存的相应区域的版本号进行比较,若发现版本号相同,则反馈不需更新的信息给客户端;若发现服务端的对应区域的版本号更加新,则获得此区域内对应覆盖有哪些图幅,将客户端的区域的版本号与服务端的此区域所对应的所有图幅的图幅版本号相比较,跳过所有版本号不晚于客户端发送的区域的版本号的图幅,只有当发现某一图幅的版本号对应的更新时间晚于上述区域的版本号对应的更新时间时,才对该图幅的数据进行处理。将所有的版本号晚于客户端发送的区域的版本号的图幅数据或仅将图幅数据内进行更新了的数据项整理发送至客户端。当然,服务端的图幅的更新状态不仅可以用版本号来确定,也可以用与图幅对应设置的图幅更新时间来确定,如图6所示。如,若发现服务端的的对应区域的版本号更加新,则与此区域所对应的所有图幅的图幅更新时间进行比较,跳过所有客户端发送的版本号所对应的更新时间不早于图幅更新时间的图幅,只有当发现某一图幅的更新时间晚于上述区域的版本号对应的更新时间时,才对该图幅的数据进行处理。将所有图幅更新时间晚于对应的客户端发送的版本号的图幅数据或或仅将图幅数据内进行更新了的数据项发送至客户端;同时,服务端还可将服务端的相应区域的版本号传回客户端,客户端根据此回传的版本号更新客户端的相应区域的版本号。\n[0102] 在将图幅数据发送至客户端时,可以将所有请求更新的数据按照预定的格式进行打包,一次性的发送给客户端;当然,由于客户端在进行导航时通常是以图幅为显示单位进行显示,也可以以图幅为单位单独发送给客户端。\n[0103] 第二种模式:\n[0104] 当使用此模式时,服务端中需设置区域与其子区域的数据关系树结构表。为了加快服务端对客户端的更新请求的响应速度,在服务端接收到客户端发送的区域的版本号后,若发现服务端的对应区域的版本号更加新,则在服务端中查询区域的分级结构,并执行当前区域进行细化分解的步骤。服务端首先判断区域有无下级区域,若区域不具有下级区域,则服务端将此区域作为细化后的区域;若此区域具有下级区域(如此区域为图4中所示的区域31),则查询区域31对应的各级子区域,将区域31分解为子区域A、B、C进行处理,若子区域A、B、C还包括下一级的子区域a、b、c,则进一步对其进行分解,直到解析到最低一级的没有下一级子区域的区域作为细化后的区域。将上述细化后的区域的版本号与客户端发送的区域版本号进行比较,若服务端的某个细化后的区域的版本号和客户端发送来的区域版本号相同,则说明此区域和客户端的相比没有进行更新,则跳过此区域,继续检查下一个区域;若服务端的某个细化后的区域的版本号更加新,则认为此区域和客户端的相比进行了更新,记录下来,并继续检查下一个区域;在检查了所有的细化后的区域后,获取所有的进行了更新的区域内对应有哪些图幅,使用第一种模式中的方法对图幅中进行了更新的数据进行后续处理,并发送给客户端,同时,服务端还可将服务端的相应区域及子区域的版本号传回客户端,客户端根据此回传的版本号更新客户端的相应区域的版本号。\n[0105] 第三种模式:\n[0106] 当使用此模式时,客户端和服务端中需设置区域与其子区域的数据关系树结构表。为了更详细的确定客户端的地图数据的更新状态,并避免对客户端的数据进行重复更新,可以在客户端获得其需要更新的区域后,客户端先查询所要请求更新的区域的分级结构,并执行当前区域进行细化分解的步骤。客户端首先判断区域有无下级区域,若区域不具有下级区域,则客户端直接将区域31的区域标识及其对应的版本号发送至服务端;若此区域具有下级区域(如此区域为图4中所示的区域31),客户端则查询区域31对应的各级子区域,将区域31分解为子区域A、B、C进行处理,若子区域A、B、C还包括下一级的子区域a、b、c,则进一步对其进行分解,直到解析到最低一级的没有下一级子区域的区域。在所有区域均分解为最小子区域后,将区域31所包含的这些所有的最小子区域的区域标识及各最小子区域对应的版本号发送至服务端。\n[0107] 服务端在接收到上述的一组细化后的区域的更新请求及其对应的版本号后,分别将服务端内对应区域的版本号与客户端发送来的对应区域的版本号进行对比,和第二种模式中的处理方式类似,若服务端的某个区域的版本号和客户端发送来的区域版本号相同,则说明此区域和客户端的相比没有进行更新,则跳过此区域,继续检查下一个区域;若服务端的某个区域的版本号更加新,则认为此区域和客户端的相比进行了更新,记录下来,并继续检查下一个区域;在检查了所有的细化后的区域后,获取所有的进行了更新的区域内对应有哪些图幅,使用第一种模式中的方法对图幅中进行了更新的数据进行后续处理,并发送给客户端,同时,服务端还可将服务端的相应区域的版本号传回客户端,客户端根据此回传的版本号更新客户端的相应区域的版本号。\n[0108] 由于客户端的区域更新可能是出现先更新了一个较小范围内的区域的地图后,又请求更新一个覆盖了此区域的一个较大范围的区域的情况,此时,此较小区域的版本号是新于此较大范围的区域的版本号的。如果仅仅向服务端传输此较大范围的区域的版本号,服务端就会把之前更新过的那个较小范围的区域的更新内容一并发送过来,造成了不必要的重复;而我们通过第三种模式的更新方式,避免了对客户端的数据的重复更新,可以减少需要传送的数据量,节省了更新时间。\n[0109] 在上述三种模式中,在针对进行了更新的图幅内的更新的数据进行处理时,通常可采用将数据集或数据项携带的更新时间与客户端发送来的覆盖了此图幅的区域的版本号所对应的更新时间进行比较:服务端先对该图幅的各数据集的更新时间与客户端发送的版本号所对应的更新时间进行比较,如果发现某数据集的更新时间比客户端发送的版本号所对应的更新时间要新,再把该数据集中的那些比客户端发送的版本号所对应的更新时间要新的数据项进行汇总打包,返回给客户端。其打包格式如图8所示。\n[0110] 另外,在客户端请求对区域内的地图数据进行更新时,由于同一区域同时在不同图层上分别对应有不同的图幅,因此,可先针对当前客户端当前导航用的所显示的图层上的图幅进行更新,以便能在最短的时间内获得最新的当前比例尺下的图幅以用于导航;之后,再针对当前区域在其他的图层上所对应的图幅进行更新,以便用户在查看更新后的区域地图时,可以对该地图进行缩放操作。\n[0111] 本发明所述的导航系统的客户端,包括:\n[0112] 客户端地图数据存储模块,用于存储客户端的地图要素数据,客户端地图数据存储模块内包括与服务端对应的、位于不同图层的一组以上的图幅,地图要素数据分别记载在不同的图幅中;\n[0113] 客户端区域更新模块,用于保存区域与图幅的对应关系(如表1、表2所示),其中,每个区域分别对应的设有能反映当前区域的更新状态的版本信息,即版本号;其中,每一个版本号都对应了一个更新时间;\n[0114] 客户端数据发送模块,用于将指定区域的更新请求及版本号发送给服务端;\n[0115] 客户端数据接收模块,用于接收服务端发送来的数据包;\n[0116] 数据包解析更新模块,用于将客户端数据接收模块得到的数据包进行解析,得到服务端中发生了更新的数据,及当前区域及各最小子区域的新的版本号;并根据此地图要素数据更新客户端的地图数据存储模块中所请求的区域内的地图要素数据及对应的版本号。\n[0117] 其中,所述的区域更新模块中还包括区域关系子模块,用于保存反映了各行政区域之间的上下级的隶属关系的区域与其子区域的数据关系树结构表;\n[0118] 区域细化子模块,用于对当前需要更新的区域进行细化分解为最小子区域,直至每个分解后的最小子区域都不再包含下一级子区域;区域细化子模块将用户请求更新的区域细化成为最小子区域后,将细化的最小子区域的区域标识及各最小子区域对应的版本号通知客户端数据发送模块以发送至服务端。\n[0119] 本发明所述的导航系统的服务端,包括:\n[0120] 服务端数据接收模块,用于接收客户端发送来的指定区域的更新请求及版本号;\n[0121] 服务端地图数据存储模块,用于存储服务端的地图要素数据,服务端地图数据存储模块内包括与客户端对应的、位于不同图层的一组以上的图幅,地图要素数据分别记载在不同的图幅中;服务端数据存储模块还存储有能反映各区域当前的更新状态的版本信息,即版本号;\n[0122] 服务端区域更新模块,用于保存区域与图幅的对应关系(如表1、表2所示),其中,每个区域分别对应的设有能反映当前区域的更新状态的版本信息,即版本号;其中,每一个版本号都对应了一个更新时间;当区域内的地图数据发生了更新时,其对应的区域的版本号也将升级成为更新的版本号;\n[0123] 地图要素数据匹配模块,用于在服务端地图数据存储模块中查找与客户端接收模块接收到的客户端的更新请求及版本号匹配的地图要素数据:\n[0124] 若服务端的某个区域的版本号和客户端发送来的对应的区域版本号相同,则说明此区域和客户端的相比没有进行更新,则跳过此区域,继续检查下一个区域;若服务端的某个区域的版本号更加新,则认为此区域和客户端的相比进行了更新,记录下来此区域进行了更新,并继续检查下一个区域,直至检查完所有的最小子区域;\n[0125] 获取上述的进行了更新的那些区域内对应的图幅,将当前区域的版本号与其覆盖的图幅的图幅版本号相比较,若版本号相同,则检测下一个图幅,直至所有图幅都检测完成,\n[0126] 查询上述区域的版本号对应的更新时间,根据此更新时间判断图幅内哪些数据发生了更新,将所有其更新时间晚于最小子区域的版本号对应的更新时间的数据项进行整理记录,作为更新的数据;\n[0127] 服务端数据发送模块,用于将地图要素数据匹配模块发送来的更新的数据按照预设格式打包,发送给客户端;若中地图要素数据匹配模块发送来的信息为空信息,通知客户端不需更新。\n[0128] 其中,所述的区域更新模块中还包括区域关系子模块,用于保存反映了各行政区域之间的上下级的隶属关系的区域与其子区域的数据关系树结构表。\n[0129] 如图9所示,导航系统的客户端向服务端请求地图更新的处理流程如下:\n[0130] 步骤S101,客户端根据导航需要获得需要更新的区域;\n[0131] 步骤S102,客户端对当前需要更新的区域进行细化分解为最小子区域,直至每个分解后的最小子区域都不再包含下一级子区域;\n[0132] 步骤S103,客户端将这些所有的最小子区域的区域标识及各最小子区域对应的版本号发送至服务端;\n[0133] 步骤S104,客户端接收服务端返回的响应数据包,按照预定义的协议规则对响应数据包进行解析,得到服务端中发生了更新的数据,及当前区域及各最小子区域的新的版本号;\n[0134] 步骤S105,以图幅为单位,根据步骤S104中得到的数据对客户端的数据进行依次更新,判断步骤S104中得到的数据中是否还有图幅没有处理;如是,执行步骤S105继续更新,否则执行步骤S106;\n[0135] 步骤S106,根据步骤S104获得的当前区域及各最小子区域的新的版本号更新客户端的当前区域及各最小子区域的版本号。\n[0136] 其中,所述的步骤S103中,还可将客户端当前导航用的所显示的图层的标志一并发送给服务端。\n[0137] 如图10所示,服务端响应客户端的更新请求的处理流程如下:\n[0138] 步骤S201,服务端接收客户端的更新请求;解析得到客户端所请求更新的区域、其细化后的最小子区域及其对应的版本号;\n[0139] 步骤S202,比较客户端发送的上述区域的版本号与服务端保存的相应区域的版本号,若发现版本号相同,则反馈不需更新的信息给客户端;若发现服务端的对应区域的版本号更加新,则执行步骤S203;\n[0140] 步骤S203,将客户端发送来的每个最小子区域的版本号与服务端内对应区域的版本号进行一一对比,判断哪些最小子区域进行了更新:\n[0141] 若服务端的某个最小子区域的版本号和客户端发送来的区域版本号相同,则说明此区域和客户端的相比没有进行更新,则跳过此区域,继续检查下一个区域;若服务端的某个最小子区域的版本号更加新,则认为此区域和客户端的相比进行了更新,记录下来此区域进行了更新,并继续检查下一个区域,直至检查完所有的最小子区域;\n[0142] 步骤S204,获取步骤S203中记录的进行了更新的那些最小子区域内对应的图幅,将当前最小子区域的版本号与其覆盖的图幅的图幅版本号相比较,若版本号相同,则检测下一个图幅,直至所有图幅都检测完成,转步骤S206;若当前图幅的版本号更新,则执行步骤S205;\n[0143] 步骤S205,查询上述最小子区域的版本号对应的更新时间,根据此更新时间判断图幅内哪些数据发生了更新,将所有其更新时间晚于最小子区域的版本号对应的更新时间的数据项进行整理记录,作为更新的数据;并返回步骤S204,检测下一个图幅,直至所有图幅都检测完成,转步骤S206;\n[0144] 步骤S206,将上述过程中记录的所有图幅中那些新发生了更新的数据连同其对应的区域的版本号,按照预定义的协议规则打包,返回给客户端。\n[0145] 其中,若服务端接收到客户端发送的客户端当前导航用的所显示的图层的标志,则在将各发生了更新的图幅的图幅数据发送至客户端时,先发送与客户端当前导航用的所显示的图层上的图幅;再发送其他图层上的图幅。\n[0146] 本发明实现了按区域根据版本号进行更新,可以针对性的对区域进行更新,能更好的切合用户的真实需求。\n[0147] 以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
法律信息
- 2012-02-01
- 2009-12-16
专利申请权、专利权的转移(专利申请权的转移)
专利申请权、专利权的转移(专利申请权的转移)变更项目:申请人变更前权利人:凯立德欣技术(深圳)有限公司 申请人地址:广东省深圳市福田区天安数码城创新科技广场B-908 邮政编码:518040变更后权利人:深圳市凯立德计算机系统技术有限公司 申请人地址:广东省深圳市福田区天安数码城创新科技广场B-908 邮政编码:518040登记生效日:2009.11.13
- 2009-02-04
- 2008-12-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-04-11
|
2006-10-08
| | |
2
| |
2005-02-09
|
2004-06-30
| | |
3
| |
2004-06-30
|
2003-12-18
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |