发明内容
本发明的发明人发现上述相关技术中存在如下问题:手动生成道路中线效率低下,而且由于各厂商提供的道路面数据规格不同导致兼容性差。
针对上述问题中的至少一个问题,本发明人提出了一种自动的、高效率的道路中线生成技术方案。
根据本发明的一个实施例,提供了一种道路中线的生成方法,包括:将待处理的道路划分为多个三角形;对所述多个三角形进行分类,将具有1个相邻三角形的三角形作为第一类三角形,将具有2个相邻三角形的三角形作为第二类三角形,将具有3个相邻三角形的三角形作为第三类三角形;选择一个第三类三角形或第一类三角形为起始三角形;以所述起始三角形的重心或一条相邻边的中点为起点生成道路中线,所述相邻边为三角形与其相邻三角形共用的边,所述道路中线依次连接经过的第二类三角形的相邻边的中点,直到遇到第一类三角形或第三类三角形为止。
可选地,根据待处理的道路的边界线上的形状控制点,对所述待处理的道路进行三角剖分,将所述待处理的道路划分为多个三角形。
可选地,根据所述待处理的道路的最大路宽和最小路宽计算平均路宽,根据所述平均路宽对所述形状控制点进行密集化处理。
可选地,删除悬挂线,所述悬挂线为起点位于第三类三角形内,终点位于第一类三角形内,且长度小于预定值的道路中线。
可选地,在所述悬挂线的起点为两条道路中线共用的情况下,将所述两条道路中线合并为一条道路中线。
可选地,在三条道路中线交汇于同一点,且其中两条道路中线的夹角大于预定角度的情况下,删除所述同一点所在的三角形内的所述三条道路中线的线段;延长所述两条道路中线,以形成新的道路中线;延长第三条道路中线与所述新的道路中线交于一点。
根据本发明的另一个实施例,提供一种道路中线的生成装置,包括:道路划分模块,用于将待处理的道路划分为多个三角形;三角形分类模块,用于对所述多个三角形进行分类,将具有1个相邻三角形的三角形作为第一类三角形,将具有2个相邻三角形的三角形作为第二类三角形,将具有3个相邻三角形的三角形作为第三类三角形;道路中线生成模块,用于选择一个第三类三角形或第一类三角形为起始三角形,并以所述起始三角形的重心或一条相邻边的中点为起点生成道路中线,所述相邻边为三角形与其相邻三角形共用的边,所述道路中线依次连接经过的第二类三角形的相邻边的中点,直到遇到第一类三角形或第三类三角形为止。
可选地,所述道路划分模块根据待处理的道路的边界线上的形状控制点,对所述待处理的道路进行三角剖分,将所述待处理的道路划分为多个三角形。
可选地,所述道路划分模块根据所述待处理的道路的最大路宽和最小路宽计算平均路宽,根据所述平均路宽对所述形状控制点进行密集化处理。
可选地,所述道路中线生成模块还用于删除悬挂线,所述悬挂线为起点位于第三类三角形内,终点位于第一类三角形内,且长度小于预定值的道路中线。
可选地,所述道路中线生成模块在所述悬挂线的起点为两条道路中线共用的情况下,将所述两条道路中线合并为一条道路中线。
可选地,所述道路中线生成模块在三条道路中线交汇于同一点,且其中两条道路中线的夹角大于预定角度的情况下,删除所述同一点所在的三角形内的所述三条道路中线的线段,延长所述两条道路中线,以形成新的道路中线,延长第三条道路中线与所述新的道路中线交于一点。
根据本发明的又一个实施例,提供一种道路中线的生成装置,包括:存储器以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器装置中的指令,执行上述任一个实施例所述的道路中线的生成方法。
根据本发明的又一个实施例,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一个实施例所述的道路中线的生成方法。
本发明的一个优点在于,将待处理道路划分为不同类型的三角形,并根据三角形的类型判断道路中线的起点、终点和走向,实现了道路中线的自动生成,提高了道路中线生成的效率。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1示出本发明的道路中线的生成方法的一个实施例的流程图。
如图1所示,该方法包括:步骤110,将待处理的道路划分为多个三角形;步骤120,将三角形分类;步骤130,根据三角形类型确定起点并生成道路中线。
在步骤110中,可以根据待处理的道路的边界线上的形状控制点,对待处理的道路进行三角剖分,将待处理的道路划分为多个三角形。例如,可以采用Delaunay三角剖分来实现待处理的道路的三角形剖分。Delaunay三角剖分具有唯一性,即不论从道路的哪个位置开始剖分三角形,最终都将得到一致的结果,从而能够提高道路中线生成的稳定性。
在一个实施例中,可以根据待处理的道路的最大路宽和最小路宽计算平均路宽,根据平均路宽对形状控制点进行密集化处理。
例如,图2a示出本发明的道路三角形剖分结果的一个实施例的示意图。如图2a所示,道路两侧边线上共具有6形状控制点,根据这6个形状控制点可以将道路剖分为4个三角形。由于形状控制点较少,即密度较小,容易形成过于狭长的三角形,从而影响中线生成的准确性。
因此,可以在三角形剖分前先对形状控制点进行密集化处理。例如,图2b示出的是本发明的密集化处理后的三角形剖分结果的示意图。如图2b所示,密集化处理后形状控制点增加为10个,道路划分的更加细致,从而可以提高中线生成的精细度,而且这样可以避免形成过于狭长的三角形,从而提高中线生成的准确性。
在步骤120中,可以将具有1个相邻三角形的三角形作为第一类三角形,将具有2个相邻三角形的三角形作为第二类三角形,将具有3个相邻三角形的三角形作为第三类三角形。
例如,图3示出本发明的道路中线的生成方法的一个实施例的示意图。如图3所示,三角形37具有1个相邻三角形,即为第一类三角形;三角形32具有2个相邻三角形,即为第二类三角形;三角形31具有3个相邻三角形,即为第三类三角形。
可以看出,第一类三角形位于道路的两端,第二类三角形位于道路的中间,第三类三角形位于多条道路的交接处。因此,可以在第一类一角形或第三类三角形中确定道路中线的起点和终点(起点优选第三类三角形),从而可以为生成道路中线的自动化提供技术基础。
在步骤130中,可以选择一个第三类三角形或第一类三角形为起始三角形,以起始三角形的重心或一条相邻边的中点为起点生成道路中线,相邻边为三角形与其相邻三角形共用的边,道路中线依次连接经过的第二类三角形的相邻边的中点,直到遇到第一类三角形或第三类三角形为止。
例如,如图3所示,选择三角形31为起始三角形,以三角形的重心为起点生成道路中线。三角形31与三角形32的相邻边为边39,可以连接起点与边39的中点。然后,依次连接经过的第二类三角形32、33、34和35的中点。直到遇到三角形37为止,由于三角形37为第一类三角形,说明已经到达了道路的端点,此时可以以第一类三角形37与第二类三角形36的相邻边的中点为道路中线的终点。三角形31重心与三角形37相邻边中点之间的线段310即为此次生成的道路中线。
图3中示出的仅是生成道路中线的示意图,在实际情况中可以通过密集化处理对道路进行更细致的划分,即生成更多的三角形,从而使得生成的道路中线更加平坦。
还可以根据设定的阈值对生成的道路中线进行抽稀处理,从而减少存储压力。也可以为用户提供平台界面,用户在平台界面中输入参数,如道路最大宽度、最小宽度、抽稀处理的阈值等,从而提高道路中线生成的效率。
在另一个实施例中,可以删除悬挂线,悬挂线为起点位于第三类三角形内,终点位于第一类三角形内,且长度小于预定值的道路中线。在悬挂线的起点为两条道路中线共用的情况下,可以将两条道路中线合并为一条道路中线。也可以删除所有长度小于预定值的道路中线。
这样可以删除因道路抖动而产生的长度很短,又不在主干线路上的碎线,从而提高道路中线生成的准确性。
例如,图4示出本发明的删除悬挂线的方法的一个实施例的示意图。
如图4所示,道路中线43的起点为道路中线41和道路中线42共用,终点所在三角形不是第三类三角形,而且长度较短(例如,小于道路中线43的起点所在的三角形44的最长边的中线)。在这种情况下,可以确定道路中线43为悬挂线,将其删除。删除道路中线43后,可以将道路中线41和42合并为一条道路中线。
在又一个实施例中,在三条道路中线交汇于同一点,且其中两条道路中线的夹角大于预定角度的情况下,可以删除该同一点所在的三角形内的三条道路中线的线段,然后延长所述两条道路中线,以形成新的道路中线,最后延长第三条道路中线与所述新的道路中线交于一点。
这样可以实现道路中线的平直化处理,从而降低道路中线的抖动程度,提高道路中线生成的准确性。
例如,图5a-5c示出本发明的道路中线平直化处理的一个实施例的示意图。
如图5a所示,道路中线51、52和53交汇于三角形55中的同一点54。可以删除三角形55中的三条道路中线的线段,删除后如图5b所示。可以分别延长删除线段后的三条道路中线,如果形成的夹角中有一个大于预设值(例如135°),则连接形成该夹角的两条道路中线。例如,如图5c所示,可以将三角形55的相邻边上道路中线51和52连接的中点连在一起以形成新的道路中线56。最后延长道路中线53与道路中线56相交于一点,例如,可以以道路中线53的终点向道路中线56作垂线。
上述实施例中,将待处理道路划分为不同类型的三角形,并根据三角形的类型判断道路中线的起点、终点和走向,实现了道路中线的自动生成,提高了道路中线生成的效率。而且,本发明的方法不受电子地图的图层限制,可以在所有图层生成道路中线,从而提高了方法的兼容性。
图6示出本发明的道路中线的生成装置的一个实施例的结构图。如图6所示,道路中线的生成装置6包括:道路划分模块61、三角形分类模块62和道路中线生成模块63。
道路划分模块61将待处理的道路划分为多个三角形。例如,道路划分模块61根据待处理的道路的边界线上的形状控制点,对待处理的道路进行三角剖分,将待处理的道路划分为多个三角形。
在一个实施例中,道路划分模块61根据待处理的道路的最大路宽和最小路宽计算平均路宽,根据平均路宽对形状控制点进行密集化处理。
三角形分类模块62对多个三角形进行分类,将具有1个相邻三角形的三角形作为第一类三角形,将具有2个相邻三角形的三角形作为第二类三角形,将具有3个相邻三角形的三角形作为第三类三角形。
道路中线生成模块63选择一个第三类三角形或第一类三角形为起始三角形,并以起始三角形的重心或一条相邻边的中点为起点生成道路中线,相邻边为三角形与其相邻三角形共用的边,道路中线依次连接经过的第二类三角形的相邻边的中点,直到遇到第一类三角形或第三类三角形为止。
在一个实施例中,道路中线生成模块63可以删除悬挂线,悬挂线为起点位于第三类三角形内,终点位于第一类三角形内,且长度小于预定值的道路中线。而且,道路中线生成模块63在悬挂线的起点为两条道路中线共用的情况下,可以将两条道路中线合并为一条道路中线。
在另一个实施例中,道路中线生成模块63在三条道路中线交汇于同一点,且其中两条道路中线的夹角大于预定角度的情况下,删除同一点所在的三角形内的所述三条道路中线的线段,延长两条道路中线,以形成新的道路中线,延长第三条道路中线与新的道路中线交于一点。
上述实施例中,将待处理道路划分为不同类型的三角形,并根据三角形的类型判断道路中线的起点、终点和走向,实现了道路中线的自动生成,提高了道路中线生成的效率。
图7示出本发明的道路中线的生成装置的另一个实施例的结构图。如图7所示,该实施例的装置7包括:存储器71以及耦接至该存储器71的处理器72,处理器72被配置为基于存储在存储器71中的指令,执行本发明中任意一个实施例中的道路中线的生成方法。
其中,存储器71例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
至此,已经详细描述了根据本发明的道路中线的生成方法、装置和计算机可读存储介质。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。