本发明涉及导航技术领域,特别涉及一种地图中高架道路的描画方法、装置及相关设备。
背景技术:
高架道路,即高架桥,又称跨线桥。指搁在一系列狭窄钢筋混凝土或圬工拱上具有高支撑的塔或支柱,跨过山谷、河流、道路或其他低处障碍物的桥梁。城市发展后,交通拥挤,建筑物密集,而街道又难于拓宽,采用这种桥可以疏散交通密度,提高运输效率。此外,在城市间的高速公路或铁路,为避免和其他线路平面交叉、节省用地、减少路基沉陷(某些地区),也可不用路堤,而采用这种桥。
导航地图在3d场景下,对高架道路的描画对于提高导航地图的视觉效果起到重要的作用。为了更好的显示高架道路的3d效果图,还需要同时绘制其承重柱,如何确定承重柱的描画位置,如何对承重柱实现清楚的显示,是3d显示的重要因素。
地图上元素的立体效果,能更大程度上模拟真实的地理情况,使得导航的指引更准确和逼真,提升用户体验,如何描绘地图的3d效果,是一直以来的研发热点。
技术实现要素:
鉴于现有技术中存在的技术缺陷和技术弊端,本发明实施例提供克服上述问题或者至少部分地解决上述问题的一种地图中高架道路的描画方法、装置及相关设备。
作为本发明实施例的一个方面,涉及一种地图中高架道路的描画方法,包括以下步骤:
根据地图数据中高架道路的路面数据确定高架道路的描画数据;
根据所述高架道路的路面数据及其对应的承重柱的位置数据确定承重柱的描画数据;
对所述高架道路及其对应的承重柱的描画数据进行描画,得到所述高架道路及其对应的承重柱。
可选的,所述根据所述高架道路的路面数据及其对应的承重柱的位置数据确定承重柱的描画数据,包括:
根据所述高架道路的车道线数据及其对应的承重柱的位置数据确定所述承重柱的描画位置;
根据所述高架道路的车道线数目确定所述承重柱的直径;
根据所述承重柱的描画位置处的所述高架道路的高度数据确定所述承重柱的高度数据;
根据所述承重柱的描画位置、直径和高度数据,得到所述承重柱的描画数据。
可选的,当所述高架道路为具有倾斜度的道路时,所述根据所述高架道路的路面数据及其对应的承重柱的位置数据确定承重柱的描画数据,还包括:
根据所述承重柱的描画数据与所述高架道路的路面数据的截面,确定所述截面处承重柱的形状点的高度数据;
将所述截面处承重柱的形状点的高度数据,替换所述承重柱的高度数据,得到具有倾斜度的高架道路承重柱的描画数据。
可选的,所述根据所述高架道路的车道线数据及其对应的承重柱的位置数据确定所述承重柱的描画位置,具体为:
基于所述高架道路的车道线数目确定所述承重柱的描画中心线;
根据所述承重柱的位置数据在承重柱的描画中心线上确定承重柱的描画位置。
可选的,所述基于所述高架道路的车道线数目确定所述承重柱的描画中心线,具体为:
若所述车道线的数目为单数时,则将高架道路的中心线位置作为承重柱的描画中心线;
若所述车道线的数目为双数时,则将高架道路的中心车道线的位置作为承重柱的描画中心线。
可选的,若相同位置处存在两个相互跨压的高架道路时,在确定各高架道路的承重柱的描画位置时,剔除跨压位置处的承重柱。
可选的,所述根据所述高架道路的车道线数目确定所述承重柱的直径,具体为:
所述承重柱的直径大小与所述高架道路的车道线数目成正比。
可选的,所述根据地图数据中高架道路的路面数据确定高架道路的描画数据,具体为:
将高架道路的路面数据抬高设定的厚度值,得到有厚度的道路数据和道路侧边缘数据,得到高架道路的描画数据。
可选的,一种地图中高架道路的描画方法,还包括:
将高架道路的路面数据向地面投影,得到高架道路的阴影数据;
对所述高架道路的阴影数据进行描画,得到高架道路的阴影。
可选的,一种地图中高架道路的描画方法,还包括:
根据设定的光照位置,确定承重柱的阴影数据;
对所述承重柱阴影数据进行描画,得到承重柱的阴影。
作为本发明实施例的另一个方面,涉及一种地图中高架道路的描画装置,包括:
道路描画数据生成模块,用于根据地图数据中高架道路的路面数据确定高架道路的描画数据;
承重柱描画数据生成模块,用于根据所述高架道路的路面数据及其对应的承重柱的位置数据确定承重柱的描画数据;
描画模块,用于对所述高架道路的描画数据及其对应的承重柱的描画数据进行描画,得到所述高架道路及其对应的承重柱。
可选的,一种地图中高架道路的描画装置,还包括:
高架道路阴影数据生成模块,用于将高架道路的路面数据向地面投影,得到高架道路的阴影数据;
承重柱的阴影数据生成模块,用于根据设定的光照位置,确定承重柱的阴影数据;
所述描画模块,还用于对所述高架道路的阴影数据进行描画,得到高架道路的阴影,对所述承重柱阴影数据进行描画,得到承重柱的阴影。
作为本发明实施例的又一个方面,涉及一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行如上述地图中高架道路的描画方法。
作为本发明实施例的再一个方面,涉及一种导航设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上述地图中高架道路的描画方法。
本发明实施例提供的上述技术方案的有益效果至少包括:
本发明实施例提供的一种地图中高架道路的描画方法、装置及相关设备,在一些可选的实施例中,首先根据地图数据中高架道路的路面数据确定高架道路的描画数据;进而根据所述高架道路的路面数据及其对应的承重柱的位置数据确定承重柱的描画数据;最后对所述高架道路及其对应的承重柱的描画数据进行描画,得到所述高架道路及其对应的承重柱。
通过上述描述可知,在本发明实施例中,通过对高架道路和承重柱的描画,在导航地图中更好地模拟了真实的高架道路,提升了道路的立体效果和用户使用体验。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一中的地图中高架道路的描画方法的流程图;
图2为本发明实施例一中的确定承重柱的描画数据的流程图;
图3为本发明实施例一中的当所述高架道路为具有倾斜度的道路时,确定承重柱的描画数据的流程图;
图4为本发明实施例二中的地图中高架道路的描画方法的流程图;
图5为本发明实施例二中的高架道路及其承重柱的效果图;
图6为本发明实施例三中的地图中高架道路的描画装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
下面对本发明实施例提供的一种地图中高架道路的描画方法、装置及相关设备的具体实施方式进行详细的说明。
实施例一:
根据本发明实施例,提供了一种地图中高架道路的描画方法,如图1所示,可以包括以下s11-s13。
s11:根据地图数据中高架道路的路面数据确定高架道路的描画数据。
本实施例中,具体为:将高架道路的路面数据抬高设定的厚度值,得到有厚度的道路数据和道路侧边缘数据,得到高架道路的描画数据。
可以是,将所述高架道路的路面数据中形状点的三维坐标的高度值(z值)增加设定的厚度值,得到厚度为设定厚度值的高架道路的路面数据。高架道路的的高度数据可以是用高架道路的路面数据的xyz坐标值中的z值来表示。
具体的,可以是,高架道路的路面数据中形状点的三维坐标的z值为10米。将高架道路的路面数据中形状点的三维坐标的z值抬高10厘米,即得到厚度为10厘米的高架道路的路面数据和道路侧边缘数据。
s12:根据所述高架道路的路面数据及其对应的承重柱的位置数据确定承重柱的描画数据。
本实施例中,具体地,根据所述高架道路的车道线数据及其对应的承重柱的位置数据确定所述承重柱的描画位置;根据所述高架道路的车道线数目确定所述承重柱的直径;根据所述承重柱的描画位置处的所述高架道路的高度数据确定所述承重柱的高度数据;根据所述承重柱的描画位置、直径和高度数据,得到所述承重柱的描画数据。
上述步骤s11和步骤s12可以同时执行,也可以依次执行。依次执行时,对这两个步骤的执行顺序不做限定。
s13:对所述高架道路及其对应的承重柱的描画数据进行描画,得到所述高架道路及其对应的承重柱。
本实施例中,通过对将高架道路路面数据抬高设定的厚度值得到的有厚度的道路数据和道路侧边缘数据进行描画,生成有厚度的道路和道路侧边缘,该方法利用简单的算法,就使得道路具有厚度、道路侧边缘。在导航地图中更好地模拟了真实的道路,提升了道路的立体效果和用户使用体验。
在一个实施例中,可以是,在所述有厚度的道路的两侧都描画道路侧边缘;或,根据在导航地图的3d场景下显示的需要,只在所述道路的一侧描画道路侧边缘。
所述道路侧边缘的颜色与所述高架道路的颜色不同,以便导航地图在3d场景下提升道路的立体效果。对于道路侧边缘数据的颜色,本发明不做具体限定,只要能与高架道路有明显的区分,并且不与导航地图中的其他元素混淆即可。
本实施例中,根据所述承重柱的描画位置、直径和高度数据,采用三角剖分方法确定所述承重柱的描画数据。对高架道路及其对应的承重柱图形进行三角剖分处理的具体实施方式可以参照现有技术中的方法,本发明实施例中,不作限定。
在一个具体实施例中,步骤s12,根据所述高架道路的路面数据及其对应的承重柱的位置数据确定承重柱的描画数据,如图2所示,包括以下步骤s121-s124:
s121:根据所述高架道路的车道线数据及其对应的承重柱的位置数据确定所述承重柱的描画位置。
本实施例中,具体为:基于所述高架道路的车道线数目确定所述承重柱的描画中心线;根据所述承重柱的位置数据在承重柱的描画中心线上确定承重柱的描画位置。
所述基于所述高架道路的车道线数目确定所述承重柱的描画中心线,具体为:若所述车道线的数目为单数时,则将高架道路的中心线位置(centerline)作为承重柱的描画中心线;若所述车道线的数目为双数时,则将高架道路的中心车道线(boundary)的位置作为承重柱的描画中心线。
若相同位置处存在两个相互跨压的高架道路时,即高架道路的属性信息存在z-level属性时,在确定各高架道路的承重柱的描画位置时,剔除跨压位置处的承重柱,具体地,确定互相跨压的高架道路被跨压的道路的宽度信息,若承重柱的描画位置位于跨压道路宽度信息范围内,则将该承重柱剔除。
s122:根据所述高架道路的车道线数目确定所述承重柱的直径。
本实施例中,具体为:所述承重柱的直径大小与所述高架道路的车道线数目成正比,即高架道路的车道线数量多,则称重柱的直径大。
s123:根据所述承重柱的描画位置处的所述高架道路的高度数据确定所述承重柱的高度数据。
本实施例中,具体地,将所述承重柱的描画位置处的所述高架道路的形状点的三维坐标的高度值(z值)作为所述承重柱的高度数据。
s124:根据所述承重柱的描画位置、直径和高度数据,得到所述承重柱的描画数据。
本实施例中,确定了承重柱的描画位置和直径以后,可以将承重柱描画成六棱柱或者圆柱,具体地,根据承重柱的描画位置确定圆点,根据承重柱的直径确定六棱柱或者圆柱底面图形,对六棱柱或者圆柱底面图形进行三角剖分得到多个三角形的顶点,得到由各个三角形的顶点组成的承重柱的底面描画数据;根据承重柱的高度数据,确定承重柱的侧面图形,对承重柱的侧面图形进行三角剖分得到多个三角形的顶点,得到由各个三角形的顶点组成的承重柱的侧面描画数据。
在一个具体实施例中,步骤s12,当所述高架道路为具有倾斜度的道路时,所述根据所述高架道路的路面数据及其对应的承重柱的位置数据确定承重柱的描画数据,如图3所示,还包括以下步骤s125-s126:
s125:根据所述承重柱的描画数据与所述高架道路的路面数据的截面,确定所述截面处承重柱的形状点的高度数据。
本实施例中,得到所述承重柱的侧面描画数据则可以确定出其与所述高架道路的路面数据的截面,具体地,若承重柱描画为六棱柱,则可以得到六个截面处的形状点的高度数据,若承重柱描画为圆柱,则可以确定多个截面处的形状点的高度数据。
s126:将所述截面处承重柱的形状点的高度数据,替换所述承重柱的高度数据,得到具有倾斜度的高架道路承重柱的描画数据。
本实施例中,具有倾斜度的高架道路根据步骤s121-s124的方法确定的承重柱描画数据,进行承重柱的描画会出现承重柱的边缘高出高架道路,导致描画效果失真,需要对超出高架道路的承重柱进行剔除。
实施例二,
在一个具体实施例中,提供了一种地图中高架道路的描画方法,如图4所示,可以包括以下s21-s25。
s21:根据地图数据中高架道路的路面数据确定高架道路的描画数据。
本实施例中,具体为:将高架道路的路面数据抬高设定的厚度值,得到有厚度的道路数据和道路侧边缘数据,得到高架道路的描画数据。
可以是,将所述高架道路的路面数据中形状点的三维坐标的高度值(z值)增加设定的厚度值,得到厚度为设定厚度值的高架道路的路面数据。高架道路的的高度数据可以是用高架道路的路面数据的xyz坐标值中的z值来表示。
s22:根据所述高架道路的路面数据及其对应的承重柱的位置数据确定承重柱的描画数据。
本实施例中,具体地,根据所述高架道路的车道线数据及其对应的承重柱的位置数据确定所述承重柱的描画位置;根据所述高架道路的车道线数目确定所述承重柱的直径;根据所述承重柱的描画位置处的所述高架道路的高度数据确定所述承重柱的高度数据;根据所述承重柱的描画位置、直径和高度数据,得到所述承重柱的描画数据。
上述步骤s21和步骤s22可以同时执行,也可以依次执行。依次执行时,对这两个步骤的执行顺序不做限定。
s23:对所述高架道路及其对应的承重柱的描画数据进行描画,得到所述高架道路及其对应的承重柱。
本实施例中,通过对将高架道路路面数据抬高设定的厚度值得到的有厚度的道路数据和道路侧边缘数据进行描画,生成有厚度的道路和道路侧边缘,该方法利用简单的算法,就使得道路具有厚度、道路侧边缘。在导航地图中更好地模拟了真实的道路,提升了道路的立体效果和用户使用体验。
在一个实施例中,可以是,在所述有厚度的道路的两侧都描画道路侧边缘;或,根据在导航地图的3d场景下显示的需要,只在所述道路的一侧描画道路侧边缘。
所述道路侧边缘的颜色与所述高架道路的颜色不同,以便导航地图在3d场景下提升道路的立体效果。对于道路侧边缘数据的颜色,本发明不做具体限定,只要能与高架道路有明显的区分,并且不与导航地图中的其他元素混淆即可。
本实施例中,根据所述承重柱的描画位置、直径和高度数据,采用三角剖分方法确定所述承重柱的描画数据。对高架道路及其对应的承重柱图形进行三角剖分处理的具体实施方式可以参照现有技术中的方法,本发明实施例中,不作限定。
s24:将高架道路的路面数据向地面投影,得到高架道路的阴影数据。
本实施例中,将所述高架道路的路面数据中形状点的三维坐标的z值修改为地面上的形状点的三维坐标的z值。例如,当地平面上的形状点的三维坐标的z值为0时,通过将所述高架道路的路面数据中形状点的三维坐标的z值修改为0,得到高架道路的阴影数据。
s25:对所述高架道路的阴影数据进行描画,得到高架道路的阴影。
本实施例中,高架道路的阴影的颜色与高架道路的颜色不同,以便导航地图在3d场景下达到提升道路的立体效果。对于高架道路的阴影的颜色,本发明不做具体限定,只要能与地平面有明显的区分,并且不与导航地图中的其他元素混淆即可。
本实施例中,当多个道路阴影有重叠区域时,通过相应的算法保留高度最低的道路在重叠区域的道路阴影,删除其余道路在重叠区域的道路阴影。在导航地图中更逼真的模拟真实的道路阴影情况,提升了地图的显示效果和用户使用体验。
在一个具体实施例中,一种地图中高架道路的描画方法,还包括以下s26-s27。
s26:根据设定的光照位置,确定承重柱的阴影数据;
s27:对所述承重柱阴影数据进行描画,得到承重柱的阴影。
本实施例中,针对承重柱的阴影(阴暗面):根据地图描画过程中设定的光照位置,采用opengl描画软件,可以绘制承重柱的阴影。
本实施例中,得到的高架道路及其承重柱的效果图如图5所示,图中,1为高架道路的3d效果,2为高架道路侧边缘的3d效果,3为高架道路的阴影的3d效果,4为承重柱的3d效果。
实施例三:
基于同一发明构思,本发明实施例还提供了一种地图中高架道路的描画装置及相关导航设备等,由于这些装置和设备所解决问题的原理与前述道路立体效果的描画方法相似,因此该装置和设备的实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例提供了一种地图中高架道路的描画装置,如图6所示,该装置包括:
道路描画数据生成模块10,用于根据地图数据中高架道路的路面数据确定高架道路的描画数据;
承重柱描画数据生成模块20,用于根据所述高架道路的路面数据及其对应的承重柱的位置数据确定承重柱的描画数据;
描画模块30,用于对所述高架道路的描画数据及其对应的承重柱的描画数据进行描画,得到所述高架道路及其对应的承重柱。
在一个具体实施例中,地图中高架道路的描画装置,还包括:
高架道路阴影数据生成模块40,用于将高架道路的路面数据向地面投影,得到高架道路的阴影数据;
承重柱的阴影数据生成模块50,用于根据设定的光照位置,确定承重柱的阴影数据。
所述描画模块30,还用于对所述高架道路的阴影数据进行描画,得到高架道路的阴影,对所述承重柱阴影数据进行描画,得到承重柱的阴影。
实施例四:
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行上述地图中高架道路的描画方法。
实施例五:
基于同一发明构思,本发明实施例还提供了一种导航设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述地图中高架道路的描画方法。
除非另外具体陈述,术语比如处理、计算、运算、确定、显示等等可以指一个或更多个处理或者计算系统、或类似设备的动作和/或过程,所述动作和/或过程将表示为处理系统的寄存器或存储器内的物理(如电子)量的数据操作和转换成为类似地表示为处理系统的存储器、寄存器或者其他此类信息存储、发射或者显示设备内的物理量的其他数据。信息和信号可以使用多种不同的技术和方法中的任何一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、移动磁盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。该asic可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。