首页 / 可更新导航数据库

可更新导航数据库有效专利 发明

技术内容

技术领域 本发明涉及数据库,特别是导航系统中的导航数据库。本发明特 别涉及可通过部分和渐增式更新得到更新的车辆导航系统中的导航数 据库。 背景技术 导航系统在当今的车辆中变得越来越流行,特别是在中高档汽车 中。导航系统执行至用户选择的预先确定的目的地的路线导航。路线 导航和用户的操作都可以通过语音控制/识别系统口头地执行和/或通 过显示装置执行。 用于车辆的导航数据库包括通常存储在可移动存储介质(诸如CD 或DVD)上的数字地图数据库。然而,近来,车辆导航数据库的数据 量已经急剧地增长(当前高达大约10GB),部分是由于引入了地形模 型以及交叉路口和陆标的三维视图。因此,近来的导航系统包括存储 在预先安装有数据库的硬盘驱动器上的数字地图数据库。 导航数据库的内容必须相对频繁地更新,以便确保可靠和最优化 的路线导航。通常,提供商每年提供一个或两个更新版本。整个数据 库的新版本被提供在CD或DVD上。如果导航数据库安装在硬盘驱动器 上,则新数据库版本通常必须由服务人员拷贝到硬盘上,由此显著增 加了数据库更新的时间消耗以及成本。而且,当前的车辆导航数据库 是只读数据库。这意味着它们只能通过替换整个数据库来更新。这又 使得成本和时间消耗不合需要地变高。 当今的导航数据库更新的另一个问题涉及这样的事实:在数据库 格式扩展后,新发布的数据库只能用适当的新软件读取。该软件必须 或者与包括新数据库的新存储介质一起提供,这种情况下,导航系统 不得不下载并安装新软件,或者更坏,在新数据库可以被读取之前, 软件必须由服务人员更新。 因此,需要减少用于数据库更新的时间和成本。而且,用户将根 据他的需要和价格意识,而被提供有更新当前使用的导航数据库的机 会。 发明内容 上述问题可通过用于更新车辆导航系统的第一导航数据库的根据 权利要求1的方法而得以解决,所述第一导航数据库以区块来存储数 据,每个区块包含指定源对象的至少一个记录,所述方法包括以下步 骤: 提供第二导航数据库,其以与第一导航数据库的区块相对应的区 块来存储数据,每个区块包含指定源对象的至少一个记录,其中第二 数据库与第一导航数据库至少在其中一个源对象上不同; 编译第一导航数据库的源对象以产生第一导航数据库的派生对 象; 编译第二导航数据库的源对象的子集以产生第二导航数据库的派 生对象,所述第二导航数据库的源对象的子集仅由与第一导航数据库 中指定的相应源对象不同的源对象组成; 以第一导航数据库的区块来将第一导航数据库的所有源对象和派 生对象分组; 以第二导航数据库的区块来将第二导航数据库的所有源对象和派 生对象分组; 将第一导航数据库的区块与第二导航数据库的相应区块进行比 较,以确定与第一导航数据库的相应区块不同的第二导航数据库的区 块;以及 产生用于第一导航数据库的更新包,其仅包括与第一导航数据库 的相应区块不同的第二导航数据库的区块。 随后,将更新包安装在包括第一导航数据库的用户导航系统中, 以更新第一导航数据库。 每个数据库的数据以逻辑相关的区块来组织。每个区块包含指定 对象及其属性的若干记录。典型地,对象是在呈现给驾驶者的数字地 图中表示的道路、陆标和兴趣点(POI),例如服务站、警察局、宾馆、 餐馆;属性可以是例如餐馆中提供的食物的种类(例如“意大利式的”)。 在本申请中,术语“源对象”是指在数据库编译处理期间不是由 其它对象派生出的独立对象(参见上述实例)。处于最低组织层级上的 地图几何形状(geometry)和道路拓扑以及城市和街道的名称属性是源 数据。 另一方面,派生对象是在数据库编译期间从源对象计算(编译) 而得的对象。派生对象和数据包括从源对象或其它派生对象已知但处 于更高组织层级以用于加速导航软件的操作的数据,例如,更高层级 的路线选择(routing)和地图显示(例如,在最低地图层级显示边缘 长度为几百米的铺块(tile)的地图中,具有边缘长度为几十千米的铺 块的标度(scale)上的路线选择和地图显示)以及名称索引。 每个区块被分配一区块编号。第一导航数据库和第二导航数据库 的相应区块,是指包括指定相同或相似对象的相应记录。如果例如第 一导航数据库和第二导航数据库的数据均被分组在n个区块中,则第一 导航数据库的区块编号1与第二导航数据库的区块编号1相对应,等 等,直到每个数据库的相应区块n。 仅由与第一导航数据库中指定的相应源对象不同的源对象组成的 第二导航数据库的源对象的子集,通常比第一导航数据库的所有源对 象的集合小得多。 应特别注意的是,应覆盖这样的情况:新的源对象,例如在第一 导航数据库的数字地图数据中不存在的新建街道,无需第一导航数据 库中的任何对应,就可包括在第二导航数据库中。此外,优选的是, 编译第一导航数据库的源对象以产生第一导航数据库的派生对象,包 括编译第一导航数据库中的与第二导航数据库的任何源对象都不相对 应的这些源对象,以解决导航数据库的后续版本中的对象的删除。如 果例如一POI已经在从第一导航数据库的发布到第二导航数据库的发 布的时间段中被移除,则第一导航数据库中的包含指定该对象的相应 记录的区块和包含指定取决于该POI的派生对象的记录的区块,可在比 较第一和第二导航数据库的编译区块期间得以识别。 第二导航数据库可被认为是基本上与第一导航数据库相同,但有 些修改。第二导航数据库可以是由提供商构建的父数据库,并且在第 一导航数据库可以是较老的父数据库的副本的情况下可以表示较老的 数据库的修改版。例如,第二数据库的一些源对象不同于第一数据库 中的相应源对象。更新包可以根据物理地实现在特定车辆中的第一导 航数据库生成,或者根据与第一导航数据库相同的副本生成。在第一 种情况下,更新包的编译和生成必须在目标导航系统上进行,并且因 此,需要至少部分编译器软件必须安装在待更新的导航数据库的目标 导航系统上。在第二种情况下,更新系统可以由提供商或由客户在其 自己的PC上生成。 通过上述方法,给导航数据库的用户提供了完全或部分更新当前 使用的导航数据库的机会,而不是用整个新版本的数据库来替换它。 因此,用户可得益于已使用的导航数据库的最新修改,同时降低时间 消耗并降低成本。 根据本文中公开的方法的一个方面,仅由与第一导航数据库中指 定的相应源对象不同的源对象组成的第二导航数据库的源对象的子集 不是必须要包括与第一导航数据库中指定的相应源对象不同的所有源 对象。根据本发明方法所提供的另一可选方案,更新包可以包括第二 导航数据库中的与第一导航数据库的相应区块不同的所有区块或仅包 括其中的一部分。用户可以选择用于编译的第二导航数据库的源对象 以及将要包含在更新包中的区块。 因此,使得第一导航数据库的用户能够根据他的需要和财务决策 来更新数据库。可以例如是这样:在包含用于例如整个欧洲的数字地 图的数据的第二数据库中,针对第一导航数据库修改有关意大利和德 国的数据。然而,第一导航数据库的用户可能会仅对有关意大利的数 字地图数据的更新版本感兴趣。因此,安装在用户的导航系统中用于 更新第一导航数据库的更新包可以仅包含第二导航数据库中的与第一 导航数据库的相应区块不同并且有关意大利的数字地图表示的源对象 和派生对象的区块。 通常,第二导航数据库中的与第一导航数据库的相应区块不同的 区块可以表示城市或国家或省或联邦国家或洲,即,以区块组织的数 据表示这些地理实体的数字地图数据。因此,用于城市或国家的区块 更新可以通过选择用于更新的相应区块来非常舒适地且以时间效率高 的方式进行。 根据本文中公开的方法的稍微强有力的实例,第一导航数据库的 所有源对象都被编译以产生第一导航数据库的派生对象,这意味着第 一导航数据库的所有区块在与第二导航数据库的区块进行比较之前, 必须被(重新)分组。尽管这种更新非常可靠,但为每个更新处理都 编译整个第一导航数据库是相对低效的。 在本文中,提供了用于更新导航数据库的方法的另一实施例,即, 一种渐增式数据库更新,其中第一导航数据库包含关于派生对象对其 它派生对象和源对象的依赖性的信息,并且仅仅那些从与第二导航数 据库的相应源对象或相应派生对象不同的第一导航数据库的源对象或 派生对象派生的第一导航数据库的派生对象,是通过编译产生的。 由于每个派生对象均是从一个或多个源对象和/或派生对象编译而 得的,所以对于每个派生对象,建立了每个派生对象相对于每个派生 对象从中派生的对象(源对象或派生对象)的依赖关系。数据库的编 译由数据库编译器执行,所述数据库编译器可以访问先前编译中产生 的所有派生对象和关于依赖关系的信息。编译器通常必须安装在想要 更新他的系统的导航数据库的用户的导航系统中。可选地,编译器必 须安装在远程计算机上,并且编译必须对物理地存在于车辆中安装的 导航系统所使用的某个存储介质上的数据库的精确副本执行。 使数据库编译器能够扫描所有对象依赖性。基于关于依赖关系的 信息,数据库编译器仅(重新)构建这样的派生对象,这些派生对象 依赖于与第二导航数据库中相对于第一导航数据库的相应对象已经发 生改变的对象相对应的对象。这些改变必须在第一导航数据库的编译 处理之前确定。应该指出的是,第二导航数据库的编译可以通过类似 的渐增式编译来执行。如果第二导航数据库的一些源对象发生了改变, 则没有必要编译整个第二导航数据库,而是仅(重新)构建那些依赖 于发生改变的源对象的派生对象就足够了。 由于根据渐增式更新/编译,没有必要编译整个数据库,所以用户 的导航数据库的更新得以显著地加速。 每个区块优选地被分配唯一的区块编号,并且在每个区块内,每 个记录优选地被分配唯一的记录编号。因此,每个对象可以通过区块 编号和记录编号而唯一地得以识别。区块编号和记录编号构成物理对 象ID(标识)。第一和第二导航数据库的数据可以进一步通过逻辑对象 ID而被组织起来,所述逻辑对象ID识别一个数据库内的一个区块的对 象(源对象或派生对象)和其它区块的对象之间的引用(reference)。 根据上述实例之一的区块更新可以修改包含在每个数据库中的逻辑到 物理ID的ID映射,以便保持第一导航数据库中的未发生改变或已发生 改变的区块之间的引用的完整性/一致性。在完全更新后,即,对于更 新包包含的区块与第一导航数据库的区块一样多的特定情况,ID映射 被设置为一,即,对于每个对象,逻辑ID和物理ID被设置为相同。 可被看作是不透明容器的区块,不能是可压缩的数据,即,不能 是在构建整个数据库后压缩的数据,并且在新的编译之前不将被解压 缩。数据压缩仅可以对包含在区块内的记录执行。在这种情况下,每 个区块对于编译和更新处理而言可直接访问,而无需数据库的大部分 的时间消耗。 记录可具有自描述(self-describing)格式以便保证同一导航数据 库的不同版本的前向和后向兼容性,并且特别是通过基于表示第一导 航数据库的较新版本的第二导航数据库生成的用于第一导航数据库的 更新包而进行的更新。更甚者,因此使得导航软件即使在相对大量的 更新之后仍能够使用导航数据库,而相对大量的更新可能会引入打算 供导航软件的新版本使用的新种类的记录。在这种情况下,未知记录 类型或已知记录的未知指定属性简单地被导航系统的软件跳过。 第一和第二导航数据库可以优选地是面向对象的数据库,即,特 别地,不是关系数据库,而是具有透明持久性的数据库。 还提供了一种计算机程序产品,其包括具有计算机可执行指令的 一个或多个计算机可读介质,所述计算机可执行指令用于执行用来更 新导航数据库的本发明方法的上述实例之一的步骤。 本发明还提供了一种配置成利用上述方法之一进行更新的导航数 据库,以及一种车辆导航系统,该车辆导航系统包括配置成利用用于 更新导航数据库的方法的上述实例之一进行更新的导航数据库。 与本领域中可能存在的导航系统相比,这样的导航系统可以更容 易地被提供数字地图数据的新版本,而数字地图数据的新版本是安全 和高效路线导航所必需的。导航系统可包括配置成使得导航数据库的 上述更新可以经由因特网进行的因特网连接。即使这是相对慢速的更 新方式,但可以直接访问经由因特网提供的新的更新包是便利的。此 外,更新程序可以充分自动地进行,使得客户可以在实际驾驶期间不 去关心实际的更新。 将参照附图描述本发明的其它特征和优点。在描述中,将参照意 在示出本发明的优选实施例的附图。应理解的是,这些实施例不代表 由下面给出的权利要求书限定的本发明的全部范围。 附图说明 图1示出了根据本文中公开的方法的用于更新导航数据库的更新 包的产生;并且 图2示出了根据本文中公开的方法的导航数据库的渐增式更新的 基本特性。 具体实施方式 考虑通过新数据库B来更新导航数据库A,其中除了在区块1中构 建的记录2中的一些被修改之外,数据库B是数据库A的副本(参见图 1)。在每个数据库中,数据以逻辑相关的区块1来分组,其中区块1典 型地具有5至64千字节的大小。 每个区块包括记录,例如高达216个记录。原则上,每个记录可包 括不同的数据类型,如整数、字符串、指针等。此外,每个记录唯一 地指定一对象(例如道路、多边形、街道交叉口、陆标等)以及对象 的属性(例如道路的封闭、限速地带等)。优选地,记录具有自描述格 式,其允许导航系统的软件跳过未知记录类型和具有已知类型的记录 的未知属性,以便被打开用于导航数据库的未来补充。 每个区块1被视为不透明容器,并被分配唯一的区块编号。区块内 的每个记录2被分配记录编号。通过区块编号和记录编号,每个对象可 唯一地得到识别。在每个区块1内,对象可以通过位置和偏移而被引用。 不同区块的记录2所指定的对象之间的引用,是通过由逻辑区块编号和 逻辑记录编号组成的逻辑对象ID指定的。 原则上,数据库A的对象更新可以这样进行,其包括以下步骤:解 压缩区块1,该区块1包含指定在数据库B的相应区块(在所示实例中, 是区块2、3和4)中发生改变的对象的记录,通过安装产生的更新包来 对解压缩的区块执行更新,以及压缩更新后的区块并将它们写入存储 装置(例如可重写硬盘或CD或DVD)中。然而,根据本实例,数据压 缩仅在区块内使用,即,每个区块自身可被直接访问而无需解压缩。 如图1所示,数据库A和B两者均分别包括1号区块。两个1号区块 都包含标注为a1、b1、c1和d1的记录2。根据数据结构,数据库A的记 录a1对应于数据库B的记录a1,数据库A的记录b1对应于数据库B的记录 b1,等等。实际上,在本实例中,1号区块在两个数据库中是相同的。 在数据库B中,2号区块包含相对于数据库A的相应记录a2和d2被修 改的记录和此外,数据库B的3号区块包含记录和并且数 据库B的4号区块包含记录其中抑扬符号(circumflex)表示这样标 记的记录指定从2号区块的被修改的对象和中的一个或每个派生 的对象。派生对象表示由数据库编译器从被修改的对象和中的一 个编译而得的数据。派生对象表示为加速导航系统的操作而产生的数 据。例如,处于最低层级上的地图几何形状和道路拓扑以及街道名称 表示源数据,而高层级的道路铺块可从基本的0层级铺块派生而得。最 低(0)层级的铺块通过所表示的边缘长度而与更高层级铺块区别开来。 最低层级的标度可包括几百米的铺块,而更高层级的标度可以包括千 米级的铺块。 数据库A提供关于对象对其它派生对象或源(非派生)对象的依赖 性的信息。在本实例中,数据库A的a2和d2以及数据库B中的相应修改 版本和被认为是指定源对象。当该关于对象的依赖性的信息在作 为更新程序的一部分的编译期间被扫描时,数据库编译器将会获知: 特别地,记录a3、d3和d4依赖于记录a2或d3,即,由记录a3、d3和d4指定 的对象是从记录a2或d3所指定的对象派生而得的。 通过仅包括2号、3号和4号区块的数据库B来获得更新包。因此, 数据库A的部分区块更新可以通过安装更新包来执行。根据也在本申请 中教导的渐增式区块更新,仅这样的区块被更新,这些区块包含指定 从在数据库B中相对于A被修改的对象派生的对象或与在数据库B中相 对于A被修改的对象相对应的对象的记录。如果在数据库B中,源对象 已经相对于数据库A被修改,则包含该源对象的区块被包括在更新包 中。 然而,不是包含在区块A中的所有对象都将被编译以用于更新程 序。另一方面,确保的是,包含依赖于被修改的记录的记录的所有区 块都被更新,而不管它们是否包括指定在数据库B中相对于数据库A被 修改的源对象的记录。 例如,如果指定处于由例如几百米的基本铺块表征的低层级上, 具有被修改的属性(例如改变的街道名称或新的交通信号灯)的表示 街道的对象,则可以是指定同一街道但处于铺块为例如几千米的图 形表示的更高层级上的记录。数据库A中的a2的更新需要a3的更新,并 且因此需要在区块更新期间更新区块3。 图2示出了导航数据库的本文中公开的渐增式区块更新的基本特 性。在导航数据库的更新期间,数据库编译器编译被修改的源对象10 以及其它派生对象可能会依赖于的许多派生对象20。在随后的步骤中, 从至少一些先前编译的源对象和派生对象30编译得到派生对象。这样 引入的依赖关系可用于渐增式数据库编译。由于数据库编译器可以访 问所有先前编译的派生对象,所以编译器可以扫描所有对象依赖性 (即,对源对象或其它派生对象的依赖性),并且仅重新构建依赖于被 修改的对象(源对象或派生对象)的对象以便生成更新包。 因此,与需要编译所有源对象的强有力的部分或完全更新相比, 为更新程序所必需的整个编译处理得到了加速。在完成编译处理之后, 可以构建包括依赖于发生改变的对象的所有重新构建的对象的更新包 40。 先前讨论的实例并非意在进行限制,而是仅作为示出本发明的特 征和优点的实例。应该理解的是,上述特征的一些或全部也可以以不 同的方式组合。