地图数据更新的装置、程序、方法 【技术领域】
概括地说,本发明涉及一种装置,该装置对具有链路并定义链路串以便表示道路的地图数据进行更新。
背景技术
按照惯例,(例如)在日本,用于导航装置的地图数据格式,普遍使用KIWI方法。在这种方法中,地图上的道路以链路为单位表示,每条链路具有起点节点和终点节点的引用信息。此外,为了加速路径发现等,上述表示方法中的地图数据具有多层的数据层次,使用链路ID作为分配给最下层中的每条链路的标识信息。
更具体地说,将具有相同属性且连续排列的链路组合为链路串,以便于数据压缩和具有相同属性道路的绘图效率。因此,链路串中的链路具有连续的链路ID。以这种方式,为了标识链路串中的每一条链路,在上层的链路串由始端链路和终端链路的链路ID表示链路串。
然而,由于实际道路的变化和其它原因,导航装置中的地图数据必须进行部分更新,从而引发了一致性维护的问题,也就是说,当将现有链路划分/拆分为两条部分,或两条链路进行合并时,如何(例如)在链路ID的连续编号保持原样的情况下管理链路ID。换句话说,链路数据更新的处理需要巨大的处理量,用于连续编号的保持。
为解决该编号问题,在日本专利文献JP3725022中提出了以下链路编号方案:(a)最下层链路各自分配了唯一的链路ID,如范围为1000至1099;(b)单条链路串中的链路具有连续链路ID,如1000至1099和1100至1199。在上述方式中,将现有链路按一下方式划分,(例如)将上述链路范围划分为1000至1049和1050至1099两个范围。也就是说,通过划分链路ID的范围保持了链路ID的连续性。
然而,在上述日本专利文献JP3725022中描述的更新方案中,如图15B所示,只有在链路ID的范围覆盖了拆分后的链路ID的情况下,才会对链路的重新编号进行保存。也就是说,如图15C所示,若拆分后链路ID的范围超出了预定义的链路ID的范围,则仍然需要对链路ID进行重新编号。也就是说,上述专利文件中描述的解决方案不是根本的解决方案。在上述技术中,只有伴随着数据量的增加,链路ID的范围才会增强。此外,如何定义合适的链路ID范围将在数据管理中引入另一个复杂的问题。
【发明内容】
由于上述和其它的问题,本发明提供了一种装置、一种程序、一种方法,用于在地图数据更新时,使用简化的链路信息管理进行地图数据更新。
在本发明公开内容的一个方面中,该地图数据更新装置具有链路列表,用于根据更新数据对地图数据中的链路进行管理,所述更新数据用于更新链路列表,并在链路列表中指定要更新的对象链路的位置信息,该装置包括:列表增强器,用于增强链路列表,以便使链路列表中包括由更新数据指定的位置信息,该位置信息当前在链路列表中不存在;信息更新单元,用于根据更新数据对与更新数据指定的位置信息相关联的链路上的信息进行更新。此外,每条链路表示地图数据中的一条道路,将各自具有相同属性的连续链路定义为地图数据中的链路串。另外,特定链路串中的每条链路都具有指向该特定链路串中的后继链路的引用信息。
具有上述结构的地图数据能够仅通过使用前面链路中的下一链路引用信息来标识特定链路,从而,达到减少对分配给每条链路的连续链路ID的使用。也就是说,链路ID连续性的约束增加了。因此,在更新地图数据的过程中,将现有链路拆分为两条链路不会导致对现有链路ID(即,标识信息)的重新编号。也就是说,地图数据的更新不会改变现有链路的标识信息。因此,更新地图数据的计算量得到减少,从而达到链路信息管理的简化。
此外,在本发明公开内容中,对现有链路的拆分与合并不会导致地图数据的现有链路标识信息发生变化。因此,在常规方法中需要的对标识信息自身的使用减少了。更具体地说,若链路以列表的形式进行管理,且地图数据的更新以不改变列表中链路位置的方式执行,则地图数据中的每条链路都能够通过列表中的位置来标识。因此,由于常规使用的链路ID的减少,所以地图数据总量得到减少。
不改变列表中现有链路位置的更新方法可以通过以下方式实现,例如:(a)将新链路附在链路列表的末尾;或(b)当从列表中删除现有链路时,保持空白的信息空间(即,通过不进行重新编号来保存空白空间)。此外,新链路可以添加至链路列表的任意位置。也就是说,不仅链路列表的末尾而且链路列表的其它位置都可以作为新链路的位置。也就是说,列表中由删除现有链路造成的空白空间,或者存储器中的其它位置都可以用作新链路的位置。
地图数据中的链路以列表的形式进行管理,该列表根据列表中更新链路的位置信息,由更新数据进行更新。这样的话,若在更新数据中指定的位置信息在该列表中不存在,则(通过使用列表增强器)该地图数据更新装置增强该链路列表,且随后,对该列表中指定位置的链路信息进行更新(通过使用信息更新单元)。
上述地图数据更新装置能够更新地图数据而不改变列表中现有链路的位置。因此,列表中的每条链路可以由列表中的位置来标识,从而,(a)能够减少链路ID(链路标识信息)、(b)减少数据量、(c)达到数据处理的加速。
此外,该地图数据更新装置也可以作为控制计算机充当等效装置的程序来实现,或者也可以作为使用链路信息对地图数据进行更新的方法来实现。在权利要求书中,这种程序、方法可以达到与该地图数据更新装置同样的有利效果。
【附图说明】
通过结合附图对本发明公开内容的实施例进行详细描述,本发明公开内容的目的、特性、优点将会变得更加清楚,其中:
图1示出了本发明公开内容的一个实施例中的基本链路结构;
图2示出了本发明公开内容的实施例中的数据库逻辑;
图3A和3B示出了本发明公开内容的实施例中的交叉点和链路串逻辑的链路结构;
图4示出了常规地图数据中的链路和节点关系;
图5示出了常规地图数据中的链路数据结构;
图6示出了本发明公开内容的实施例中的链路数据结构;
图7示出了本发明公开内容的实施例中的上下层间链路引用结构图;
图8是本发明公开内容的实施例中的导航装置的方框图;
图9示出使用KIWI方法的地图数据中的链路信息;
图10示出了本发明公开内容的实施例中的导航装置使用的地图数据中的链路信息;
图11示出了使用KIWI方法的地图数据的更新方法;
图12示出了本发明公开内容的实施例中的地图数据的更新方法;
图13A至13D是本发明公开内容的实施例中的更新数据的方框图;
图14是本发明公开内容的实施例中的地图数据更新处理的流程图;
图15A至15C示出了用于更新地图数据的三种常规重新编号方法。
【具体实施方式】
在下文中,通过附图对适用于本发明的实现形式进行描述。
(1、地图数据的概要)
首先,对地图数据的实现形式中的概要进行描述。
图1示出了本发明实施例中的地图数据的基本结构。本发明实施例中的地图数据的特点是具有将链路串表示为连接列表的优势。尤其是,链路串中的每条链路具有起点(即,起点节点)的引用信息和下一链路(即,在一个方向上,链路串中链路的排列顺序)的引用信息,从而能够标识链路的两个端点。也就是说,虽然在常规KIWI方法的地图数据中,每条链路具有起点节点和终点节点的引用信息,但是,本发明每条链路具有下一链路的引用信息而不是终点节点的引用信息。因此,根据下一链路的引用信息,能够实现对终点节点的标识。
在图1左侧的图示中,(例如)在链路串L1、L2、L3、L4中,链路L1具有包括起点节点N1和下一链路L2的引用信息,链路L2具有包括起点节点N2和下一链路L3的引用信息,链路L3具有包括起点节点N3和下一链路L4的引用信息。这样的话,因为在链路串的最后链路L4处不存在下一链路,所以在本例中,将最后节点(即,终点节点)的引用信息作为下一链路储存。
此外,在数据更新的情况下,本实施例中的地图数据会保持其连贯性而不改变现有链路的标识信息。换句话说,如图1右侧示例所示,当新节点N6将现有链路L2拆分,从而创建以新节点N6为起点节点的新链路L5时,将新链路L5上的信息添加到链路信息(即,链路列表),并将链路L2的下一链路改为链路L5。因此,以这种方式可以更新地图数据而不改变现有链路的标识信息。
这样的话,在图1所示数据结构中,作为上层的引用的链路串信息仅具有组成链路串的起点链路的引用信息,以减少地图数据量。
图2示出了本发明实施例中的地图数据的数据库的逻辑设计。本实施例中的地图数据配备了链路表、节点表、附加信息表、形状点信息、字典表(即,类型代码等)。
诸如链路ID(即,主密钥)、起点节点的node_ID(即,外密钥)、上层链路的链路ID(即,外密钥)、字典表引用ID、链路长度等的数据储存在链路表中。在图2的示例中,因为每条链路具有上级链路(即,上层链路)的引用信息,所以可以在不分开储存链路的层间关系的情况下指定数据层次间链路的联系。
此外,诸如node_ID(即,主密钥)、标准化坐标X和Y、相邻节点的node_ID(即,外密钥)等的数据储存在节点表中。而且,诸如链路ID、附加信息等的数据存储在附加信息表中,诸如链路ID(即,外密钥)、形状次序编号、标准化坐标X和Y等的数据存储在形状点信息中,诸如ID、类型代码等的数据储存在字典表中。
图3A是交叉点(即,节点)逻辑设计的示图,图3B是道路逻辑设计(即,链路设计)的示图。如上所述,节点本质上就是交叉点。虽然通常不同的目标分别用于路径数据和绘图数据,但是在本实施例中,两种数据使用相同的目的。
另一方面,如上所述,链路本质上就是道路。每条链路具有起点节点的引用信息,与其它链路一起组成链路串,并与链路串中下一链路相连接。此外,在本实施例的示例中,将不存在的伪链路设置为链路串中最后链路的下一链路。
在该(KIWI)方法的地图数据中链路串常规以连续增长的链路ID表示,以上述方式,将链路串实现为连接列表。作为这种连接列表类型的链路串的优点,可以达到解除对链路ID连续性的要求。此外,作为不同方面的优点,链路连通性和连续性由两份信息表示,也就是说,通过使用关于(a)起点节点和(b)下一链路的信息,从而在地图数据中,使逻辑设计能够不具有冗余的信息。
如图4所示,也就是说,在常规更新方法的地图数据中,为了表示链路的连通性和连续性,每条链路除了使用两端节点的引用信息之外,还使用附加的信息,如单斜线单方向的路径选择。
此外,由于在常规地图数据中组成链路串的链路的链路ID的连续性,链路的连续性和两层间的链路关系以“链路ID=起点一侧的连续编号+差值的编号”的形式表示。
如图5左侧所示,(例如)对于包括第0级(即,最下层)的链路L2、L3的第1级中的链路,通过使用起点侧的连续链路编号L2和起点侧L2与终点侧L3之间链路ID的差值,可以将该链路表示为L2‑1。此外,对于仅包括第0级的链路L1的第1级链路,由于差值为0,所以将该链路表示为L1‑0。以相同的方式,对于包括第0级的L1至L3的第2层中的链路,可以将该链路表示为L1‑2。这样的话,组成链路串的链路可以用链路ID的表示进行指定。
然而,在这种数据结构中,由于地图数据的更新,下层链路的变化导致后继链路和上层链路的链路编号的“连锁反应”,以便保持连贯性。如图5右侧所示,(例如)当将第0级的现有链路L1拆分为两条时,不仅后继链路的链路ID而且上级链路的链路ID都须要进行更新。也就是说,要保持ID编号的排列顺序,必须以对全部后继的和上层的链路进行重新编号为代价。
另一方面,如图6所示,本实施例的差值更新方法使定位(即,限定)影响区域成为可能,该影响区域需要通过在本实施例的地图数据中以直接的方式定义明确指定了的链路间的引用来发生变化。图6左侧的示例示出,第0级中的链路L4具有第1级中的链路L2的引用信息,用作上层链路的引用信息,同样地,第0级的链路L5、L6分别具有第1级的链路L3的引用信息。此外,第1级的链路L2、L3分别具有第2级的链路L1的引用信息,用作上级链路的引用信息。
因此,根据上述数据结构,如图6右侧所示,(例如)当将第0级的现有链路L4拆分为两条时,差值更新可以在不改变后继链路和上层链路中的标识信息的情况下进行,其原因在于,在常规地图数据引用方法中没有对保持排列顺序限制的要求。
如图6所示,这样的话,下层链路具有上层链路的引用信息,上层链路也具有下层链路的引用信息。然而,如图7所示,链路引用实际上最好从下层链路仅指向上层的一条链路。这样的话,通过对引用链路的起点求和,可以计算上层链路至下层链路的引用。也就是说,这种可计算的信息是“冗余”信息。此外,每条链路不需要具有上级链路的信息。也就是说,(例如)在链路串中,只有一条起点链路具有上层链路的引用信息,以便以更有效的方式减少引用数据量。
(2、导航装置的构造)
导航装置作为这种地图数据的特定用例装载入车辆,接下来,对该导航装置的实施例进行描述。
(2‑1、总体构造)
图8是导航装置10的概要构造的方框图。导航装置10配备了位置检测器11、地图数据输入单元12、操作设备13、显示单元14、扬声器15、控制电路16。
位置检测器11是一种检测配备了导航装置10的车辆的当前位置的设备,包括陀螺仪、距离传感器、公知类型的GPS接收器。
地图数据输入单元1 2是一种将储存在诸如DVD‑ROM、硬盘驱动器等的存储介质中的地图数据输入的设备。操作设备13是一种从用户处接收各种输入的设备,可以实现为置于显示单元14的前端屏幕上的触控板,或方向盘上的控制开关等,以便输入导航装置10的全部操作指令,如地图比例变化、地图滚动、目的地设置等。
显示单元14是一种全色显示器件,用于显示位置检测器11检测的当前车辆位置,以及来自地图数据输入单元12的地图数据和附加数据,如地图上的导航路径等。
包括扬声器单元和音频放大器的扬声器15输出通过使用控制电路16等合成的声音。若车辆上安装了等效器件,则扬声器15可以从配置上节省掉。
将控制电路16组成为常见的计算机,该计算机具有(例如)公知类型的CPU、ROM、RAM、I/O以及用于连接这些部件的总线。该CPU按照ROM中存储的程序,根据来自位置检测器11、地图数据输入单元12、操作设备13的各种信息执行处理(如,后面所述的地图数据更新处理)。
(2‑2、地图数据的说明)
对用于导航装置10中的地图数据进行描述。如图9所示,在常规KIWI方法的地图数据中,每条链路具有起点节点和终点节点的引用信息。此外,在增长的链路ID序列的假设下,通过根据两端(即,起点链路和终点链路)上每条链路ID的层间链路关系,将链路串定义为多个具有相同属性的连续链路的序列。
另一方面,就用于本实施例中导航装置10的地图数据来说,如图10所示,每条链路具有起点节点的引用信息、同一条链路串中的下一链路的引用信息、上级链路的引用信息。此外,对作为链路串中最后链路的下一链路、实际上不存在的伪链路进行设置。通过上述配置,对最后链路的下一链路进行定义,为了进行数据管理,以与其它链路同样的方式对最后链路进行管理。这样的话,在地图数据的每级数据中,对链路的标识信息进行独立的管理。
此外,每条链路以列表的形式进行储存,由于链路更新中不改变下标的配置,所以即使在从链路列表中添加和删除链路后,通过使用排列的下标,也可以标识列表中链路的位置。因此,每条链路不具有链路ID,和用于常规方法的地图数据相比数据量减少了。此外,同样对节点数据进行管理,即使在节点的添加和删除后,通过使用排列的下标,也可是标识节点位置。
(2‑3、地图数据更新方法的概要)
下面对用于导航装置10的地图数据更新方法的概要进行描述。
如图9所示,按照常规,在地图数据更新方法(即,KIWI方法)中,当将现有链路拆分为两条链路时,地图数据的更新会导致后继链路的“连锁反应”问题。如图11所示,(例如)当将链路11、12、13、14中的两条现有链路12、14分别拆分为两条链路时,后继链路的链路ID须要全部发生变化。
另一方面,根据用于本实施例的导航装置10的地图数据,后继链路不须要发生变化。如图12所示,也就是说,(例如)若将链路1、2、4、5中的现有链路2、5分别拆分为两条链路,则将链路7和链路8添加到链路列表的末尾,其中链路7具有将链路2拆分为两条链路的新起点节点6、链路8具有将链路5拆分为两条链路的新起点节点7。这样的话,节点6是链路7的起点节点,链路3(即,伪链路)是链路7的下一链路,链路1是链路7的上级链路。此外,节点7是链路8的起点节点,链路6(即,伪链路)是链路8的下一链路,链路2是链路8的上级链路。此外,就现有链路2来说,需要的变化是将下一链路从链路3改为链路7;就现有链路5来说,需要的变化是将下一链路从链路6改为链路8。
(2‑4、更新数据的说明)
下面对更新地图数据的更新数据进行描述。
导航装置10通过从该装置10的外部获取更新数据,进行对地图数据的更新处理。如图13A至13D所示,这样的话,更新数据粗略的分为四类。在该方框图中,每个矩形表示一份二进制数值的数据序列。
图13A是由导航装置10在链路列表的添加处理或更新处理中使用的更新数据,也就是说,用于对(a)向链路列表添加新链路、(b)更新现有链路上的信息,进行处理的数据已经记录至链路列表。该更新数据包括类型数据(即,链路添加/更新)、添加处理或更新处理对象的对象链路的链路ID(链路列表中的位置信息)即链路编号、起点节点编号(起点节点的引用信息)、下一链路编号(下一链路的引用信息)、其它信息(关于上层的引用信息等)。
图13B是由导航装置10在链路列表的删除处理中使用的更新数据,也就是说,用作删除链路的标识信息的包括类型数据(即,链路删除)和链路编号的数据。
图13C是由导航装置10在节点列表的添加处理或更新处理中使用的更新数据,该更新数据包括节点类型(即,节点添加/更新)、添加/更新的对象节点的节点ID(节点列表中的位置信息)、其它信息。
图13D是由导航装置10在节点列表的删除处理中使用的更新数据,也就是说,标识从节点列表中删除的对象节点的包括类型数据(即,节点删除)和节点编号的数据。
这样的话,导航装置10从外部获取更新数据,例如:通过(a)与车辆外的外部服务器建立直接的通讯,用于下载数据;(b)通过信息处理装置,如PC等,和服务器建立通讯,用于间接获取数据;(c)获取储存更新数据的数据介质。
(2‑5、地图数据更新处理)
参照图14中的流程图所述,当控制电路16从装置10的外部获取了更新数据时,导航装置10的控制电路16执行地图数据更新处理。
当控制电路16开始进行地图数据更新处理时,在S101中,该处理判断是否不存在未处理的更新数据。也就是说,该处理判断由下文将描述的S102之后的处理是否对全部获取的数据进行了处理。
当在S101确定存在未处理的更新数据时,该处理进行至S102,并读取该更新数据的一个条目。接下来,在S103,该处理确定S102中读取的更新数据的数据类型。
随后,当在S103中确定更新数据的数据类型是“链路添加/更新”时,该处理进行到S104,并且该处理判断更新数据的对象链路编号是否大于链路信息的编号(即,链路列表中的项目数量)。在此处,对象链路编号大于链路信息编号表示,当前不存在的链路是该处理的对象。也就是说,这表示该处理是将新链路添加至链路列表的末尾。
因此,当在S104中确定对象链路数量大于链路信息数量时,该处理进行至S105,在增强链路列表以便包括链路信息编号中的对象链路的链路编号之后,该处理进行至S106。
另一方面,当在S104中确定对象链路的链路编号不大于链路信息编号(即,当前链路列表中存在对象链路编号)时,该处理跳过S105进行至S106。
在通过更新数据的信息(即,起点节点编号、下一链路编号、其它信息)改写了链路列表中的对象链路编号的链路信息之后,该处理从S106返回至S101。这样的话,若该链路信息包括现有链路信息,则对该对象链路编号的链路信息进行更新;若该链路信息不包括现有链路信息,则该对象链路编号的链路信息具有新链路信息(如,在该链路信息是关于S105中新增强的部分的情况下,或在该链路信息因后面所述的S107中的处理而储存了无效值的情况下)。
另一方面,当在S103中确定更新数据的数据类型是“链路删除”时,该处理进行至S107,在用无效值(即,无效数据)填写链路列表中对象链路编号的链路信息之后,该处理返回至S101。也就是说,该处理删除了对象链路编号的现有链路。
此外,当在S103中确定更新数据的数据类型是“节点添加/更新”时,该处理进行至S108,并判断更新数据的对象节点编号是否大于节点信息编号(即,节点列表中的项目数量)。在此处,对象节点编号大于节点信息编号表示,在节点列表中当前不存在的节点是该处理的对象。也就是说,这表示该处理将新节点添加至节点列表的末尾。
因此,当S108中确定对象节点编号大于节点信息编号时,该处理进行至S109,在增强节点列表以便包括节点信息编号中的对象节点编号的编号之后,该处理进行至S110。
另一方面,当S108中确定对象节点编号不大于当前节点信息编号(即,在当前节点列表中存在对象节点编号)时,该处理跳过S109进行至S110。
在通过更新数据中的信息(即,其它信息)改写了节点列表中的对象节点编号的节点信息之后,该处理从S110返回至S101。这样的话,若该对象节点编号的节点信息包括现有节点信息,则对该对象节点编号的节点信息进行更新;或者,若该节点信息不包括现有节点信息,则该对象节点编号的节点信息具有新节点信息(如,在该节点信息是关于S109中新增强的部分的情况下,或在该节点信息因后面所述的S111中的处理而储存了无效值的情况下)。
另一方面,当在S103中确定更新数据的数据类型是“节点删除”时,该处理进行至S111,在用无效值(无效数据)填写节点列表中对象节点编号的节点信息之后,该处理返回至S101。也就是说,该处理删除了对象节点编号的现有节点。
返回至S101后,若在S101中确定不存在未处理的更新数据,则该地图数据更新处理自行终止。
(3、有益效果)
如上文的详细描述,用于本实施例中的地图数据每条链路中具有下一链路的引用信息,从而,能够对链路串进行管理而不用明确地描述出链路串的结构。因此,不需要对链路串中连续编号的链路ID进行分配。也就是说,链路ID的连续性不是必须的。因此,(例如)甚至当将现有链路拆分为两条链路时,也能够在不对链路ID进行重新编号的情况下对每条现有链路的标识信息进行更新。也就是说,更新地图数据的工作量减少了,从而达到链路信息管理的便利。
如图15A所示,当将常规KIWI方法的地图数据中的现有链路拆分为两条链路时,就可观察到上述情况。也就是说,当将现有链路拆分时,为了链路ID的连续性,须要对后继链路ID进行重新编号。
在日本专利文献JP3725022中描述的技术有相似的情况,如图15B所示,只有在链路ID的范围覆盖了拆分后的链路ID的情况下,才会对链路的重新编号进行保存。也就是说,如图15C所示,若拆分后链路ID的范围超出了预定义的链路ID的范围,则仍然需要对链路ID进行重新编号。也就是说,上述专利文献中描述的解决方案不是根本的解决方案。只有伴随着数据量的增加,才可以在上述技术中增强链路ID的范围。此外,如何定义合适的链路ID范围将在数据管理中引入另一个复杂的问题。
另一方面,根据本实施例中的地图数据,链路ID连续性的限制增加了,从而,能够容易地更新地图数据而不对后继链路ID进行重新编号,因此能够是链路信息的管理更容易。
此外,每条链路具有起点节点和下一链路的引用信息,使从下一链路的起点节点指定终点节点成为可能。也就是说,每条链路不须要像过去的情况那样具有起点节点和终点节点两者的引用信息。
此外,在本发明的地图数据中,地图数据以列表的形式进行管理,且地图数据的更新不改变列表中链路的位置。也就是说,只有通过列表中的位置信息(即,下标),才可以指向列表中的链路。换句话说,对于数据管理,不需要明确的编号,如链路ID编号。因此,由于直接引用至列表的下标,相比从链路列表中查询的链路ID引用,地图数量减少了,诸如数据查询的计算处理加速了。
(4、实施例中术语与权利要求语言的对应关系)
在本实施例中的导航装置10等效于地图数据更新装置。更具体地说,执行S104和S105的处理的控制电路16等效于列表增强器;执行S106和S107的处理的控制电路16等效于信息更新单元。
(5、其它实施例)
尽管本发明的公开内容是参照附图联系优选的实施例进行全面描述的,但值得注意的是,各种变化和修改对本领域的技术人员是清晰可见的。
在上述实施例中,(例如)将地图数据更新装置描述为导航装置。然而,本发明公开内容的地图数据更新装置可以作为生成用于导航装置的数据的数据更新装置或相似设备来实现。
在如权利要求书定义的本发明公开内容的范围内,理解这种变化、修改、概要设计。