一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

道路的虚拟高程生成方法、装置、计算机设备和存储介质与流程

2022-06-05 18:08:20 来源:中国专利 TAG:


1.本技术涉及地图技术领域,特别是涉及一种道路的虚拟高程生成方法、装置、计算机设备和存储介质。


背景技术:

2.电子地图在以三维的方式进行显示的过程中,会显示建筑物和道路等元素。而对于道路的显示,需要获取道路相对于地面的高度,即虚拟高程。在相关技术中,通常是采集道路的海拔高度,将海拔高度作为道路的虚拟高程。由于海拔高度是是相对于海平面的,而道路所在的地面其本身通常具有一定的海拔高度,直接将道路的海拔高度作为道路的虚拟高程,会导致绘制电子地图时原本在地面上的道路,漂浮在空中,存在道路的虚拟高程确定不准确的问题。


技术实现要素:

3.基于此,有必要针对上述技术问题,提供一种能够防止地图断层的道路的虚拟高程生成方法、装置、计算机设备和存储介质。
4.一种道路的虚拟高程生成方法,该方法包括:
5.确定目标区域中的多个道路段,并确定当次迭代对应的各道路组,道路组包括多于一个道路段,其中,初次迭代对应的道路组基于多个道路段进行关联关系划分得到;
6.对于每一道路组中的每一组内道路段,确定各组内道路段的虚拟高程;
7.基于各组内道路段的虚拟高程,对多个道路段中的未分组道路段进行平滑过渡计算,得到未分组道路段的虚拟高程;
8.基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,得到新的道路组,并基于新的道路组确定下次迭代对应的各道路组;
9.返回确定各组内道路段的虚拟高程的步骤继续执行,直至不存在满足合并条件的道路组时停止,得到目标区域中各道路段对应的最终虚拟高程。
10.在其中一个实施例中,初次迭代对应的道路组通过以下步骤得到:
11.确定由当前未被划分过的道路段构成的道路段集合,从道路段集合中选取一个道路段划分为新的道路组,并在道路段集合中删除当前选取的道路段;
12.在道路段集合中获取与新的道路组中的道路段存在关联关系的关联道路段,并将关联道路段划分至新的道路组;
13.在道路段集合中删除已被划分过的关联道路段,得到更新的道路段集合;
14.返回从道路段集合中选取一个道路段划分为新的道路组的步骤,并基于更新的道路段集合继续执行,直至满足划分停止条件时停止,得到多个道路组。
15.在其中一个实施例中,在道路段集合中获取与新的道路组中的道路段存在关联关系的关联道路段,包括:
16.确定与目标区域对应的平面地图;
17.对于新的道路组中的任一道路段,基于任一道路段在平面地图上对应的框体,对道路段集合进行初次筛选,得到初次筛选结果;
18.基于平面地图上各道路段之间的关联关系,对初次筛选结果进行再次筛选,得到与新的道路组中的道路段存在关联关系的关联道路段。
19.在其中一个实施例中,基于平面地图上各道路段之间的关联关系,对初次筛选结果进行再次筛选,得到与新的道路组中的道路段存在关联关系的关联道路段,还包括:
20.将初次筛选结果中与任一道路段具有相同后继道路段的道路段,作为与任一道路段存在关联关系的关联道路段;
21.将初次筛选结果中与任一道路段具有相同前驱道路段的道路段,作为与任一道路段存在关联关系的关联道路段。
22.在其中一个实施例中,组内道路段的虚拟高程通过属于组内道路段中的组内道路点的虚拟高程表征;对于每一道路组中的每一组内道路段,确定各组内道路段的虚拟高程,包括:
23.对于每一道路组,遍历道路组中各组内道路段的组内道路点,确定海拔高度满足预设条件的目标组内道路点;
24.将目标组内道路点所属的组内道路段的基准高程,作为目标组内道路点的虚拟高程,其中,基准高程基于组内道路段的道路属性确定;
25.基于组内道路段中各组内道路点的海拔高度,以及目标组内道路点的虚拟高程,确定除目标组内道路点之外的组内道路点的虚拟高程。
26.在其中一个实施例中,基于各组内道路段的虚拟高程,对多个道路段中的未分组道路段进行平滑过渡计算,得到未分组道路段的虚拟高程,包括:
27.确定与道路组对应的组内道路点集合,获取组内道路点集合中的端点,端点是道路段中位于两端位置的道路点;
28.基于组内道路点集合中的端点与未分组道路段中端点间的连接关系,并采用平滑过渡计算方式,确定未分组道路段中用于表征过渡道路段的端点的虚拟高程;
29.根据用于表征过渡道路段的端点的虚拟高程,确定未分组道路段中过渡道路段的虚拟高程;
30.将未分组道路段中除过渡道路段之外的未分组道路段的虚拟高程,确定为相应未分组道路段所对应的基准高程。
31.在其中一个实施例中,确定与道路组对应的组内道路点集合,包括:
32.对于任一道路组,基于道路组中各组内道路段的组内道路点构建对应的组内道路点集合;
33.确定道路组中每一组内道路段分别对应的周边道路段;
34.对于每一组内道路段,基于组内道路段的端点从相对应的周边道路段中确定出第一垂足点,并将第一垂足点添加至组内道路点集合;
35.对于每一周边道路段,在基于周边道路段的端点确定相对应的组内道路段中存在第二垂足点的情况下,将周边道路段的端点添加至组内道路点集合。
36.在其中一个实施例中,确定道路组中每一组内道路段分别对应的周边道路段,包括:
37.确定与目标区域对应的平面地图;
38.对于任一道路组中的任一道路段,以任一道路段的端点为中心,在平面地图上构建预设形状区域;
39.确定各道路段分别在平面地图上对应的框体,并将与预设形状区域之间存在交集的框体所对应的道路段作为任一道路段的周边道路段。
40.在其中一个实施例中,该方法还包括:
41.确定组内道路点集合中海拔高度满足预设条件的目标组内道路点;
42.将目标组内道路点所属的组内道路段的基准高程,作为目标组内道路点的虚拟高程,其中,基准高程基于组内道路段的道路属性确定;
43.对于添加至组内道路点集合中的属于周边道路段的第一垂足点,基于目标组内道路点的海拔高度和虚拟高程,以及第一垂足点的海拔高度,确定第一垂足点的虚拟高程;
44.对于添加至组内道路点集合中的周边道路段的端点,基于目标组内道路点的海拔高度和虚拟高程,以及周边道路段的端点的海拔高度,确定周边道路段的端点的虚拟高程。
45.在其中一个实施例中,基于组内道路点集合中的端点与未分组道路段中端点间的连接关系,并采用平滑过渡计算方式,确定未分组道路段中用于表征过渡道路段的端点的虚拟高程,包括:
46.将组内道路点集合中的端点作为第一道路端点,并基于第一道路端点构建第一集合;
47.从未分组道路段中,确定与第一道路端点相连接的第二道路端点;
48.基于第一道路端点的虚拟高程,确定第二道路端点的虚拟高程,并将虚拟高程不小于相对应的基准高程的第二道路端点添加至第二集合;
49.从第二集合中删除最大虚拟高程对应的第二道路端点,将最大虚拟高程对应的第二道路端点更新为第一道路端点,并增加至第一集合;
50.在未分组道路段中,确定与新增的第一道路端点相连接的第二道路端点;
51.基于与新增的第一道路端点相连接的第二道路端点所属的集合,以及新增的第一道路端点的虚拟高程,确定与新增的第一道路端点相连接的第二道路端点的虚拟高程和最新的第二集合;
52.返回将第二集合中对应最大虚拟高程的第二道路端点更新为第一道路端点的步骤并基于最新的第二集合继续执行,直至第二集合为空时停止,得到未分组道路段中表征过渡道路段的端点的虚拟高程。
53.在其中一个实施例中,基于第一道路端点的虚拟高程,确定第二道路端点的虚拟高程,包括:
54.对于第二集合中的任一第二道路端点,获取与相连接的第一道路端点的虚拟高程、以及与相连接的第一道路端点之间的连接边长度;
55.根据预设坡度、相连接的第一道路端点的虚拟高程、以及连接边长度,计算与任一第二道路端点相对应的候选虚拟高程;
56.从候选虚拟高程中选取最大值,作为第二道路端点的虚拟高程。
57.在其中一个实施例中,根据用于表征过渡道路段的端点的虚拟高程,确定未分组道路段中过渡道路段的虚拟高程之前,该方法还包括:
58.在用于表征过渡道路段的端点中存在满足预设条件的端点的情况下,将满足预设条件的端点作为目标端点,预设条件包括与至少两个道路组相连接;
59.在与目标端点相连接的所有道路组中任意选取两个道路组,分别作为第一道路组和第二道路组;
60.将第一道路组中与目标端点相连接的端点作为第一端点,将第二道路组中与目标端点相连接的端点作为第二端点;
61.获取第一端点与第二端点之间的目标连接边长度;
62.根据预设坡度、目标连接边长度、第一端点的虚拟高程和第二端点的虚拟高程,计算目标端点的虚拟高程。
63.在其中一个实施例中,根据预设坡度、目标连接边长度、第一端点的虚拟高程和第二端点的虚拟高程,计算目标端点的虚拟高程,包括:
64.根据第一端点的虚拟高程和预设坡度,计算第一底边距离,根据第二端点的虚拟高程和预设坡度,计算第二底边距离;
65.在第一底边距离与第二底边距离之和不小于目标连接边长度的情况下,将第一端点与第二端点之间的道路面分为三个路面区间;
66.判断目标端点所落入的路面区间,基于目标端点所落入的路面区间,计算目标端点的虚拟高程。
67.在其中一个实施例中,判断目标端点所落入的路面区间,包括:
68.根据目标端点与第一端点之间的第一连接边长度,以及预设坡度,计算第一反推虚拟高程;
69.在第一端点的虚拟高程与第一反推虚拟高程之间的第一差值大于目标端点的基准高程的情况下,确定目标端点落入靠近第一端点的路面区间;
70.根据目标端点与第二端点之间的第二连接边长度,以及预设坡度,计算第二反推虚拟高程;
71.在第二端点的虚拟高程与第二反推虚拟高程之间的第二差值大于目标端点的基准高程的情况下,确定目标端点落入靠近第二端点的路面区间;
72.在第一差值和第二差值均不大于目标端点的基准高程的情况下,确定目标端点落入位于中间的基准路面区间。
73.在其中一个实施例中,根据用于表征过渡道路段的端点的虚拟高程,确定未分组道路段中过渡道路段的虚拟高程,包括:
74.对于过渡道路段中除端点之外的任一道路点,计算过渡道路段中两端点间的虚拟高程之间的端点虚拟高程差值;
75.获取过渡道路段的总长度,获取任一道路点与过渡道路段中起始道路点之间的道路长度,起始道路点为两端点中的一个端点;
76.计算端点虚拟高程差值与道路长度之间乘积,并计算乘积与总长度之间的比值,将比值与过渡道路段中起始道路点的虚拟高程之间的和值作为任一道路点的虚拟高程。
77.在其中一个实施例中,合并条件包括陡坡连接条件;基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,得到新的道路组之前,该方法还包括:
78.在未分组道路段中存在与至少两个道路组中的组内道路段相连接的多连接端点
的情况下,获取多连接端点分别与相连接的任意两个道路组间的连接边长度;
79.基于与相连接的任意两个道路组间的连接边长度,确定虚拟高程的预估差值;根据任意两个道路组中各自与多连接端点相连接的端点的虚拟高程,计算虚拟高程的差值绝对值;
80.在差值绝对值大于预估差值的情况下,确定任意两个道路组满足合并条件。
81.在其中一个实施例中,基于与相连接的任意两个道路组间的连接边长度,确定虚拟高程的预估差值,包括:
82.对与相连接的任意两个道路组间的连接边长度求和,得到连接边长度和;
83.基于预设坡度和连接边长度和,确定虚拟高程的预估差值。
84.在其中一个实施例中,由道路段构成的道路至少包括单层高架道路、多层高架道路、平面道路和地下道路中的至少一种道路。
85.一种道路的虚拟高程生成装置,该装置包括:
86.第一确定模块,用于确定目标区域中的多个道路段,并确定当次迭代对应的各道路组,道路组包括多于一个道路段,其中,初次迭代对应的道路组基于多个道路段进行关联关系划分得到;
87.第二确定模块,用于对于每一道路组中的每一组内道路段,确定各组内道路段的虚拟高程;
88.平滑过渡计算模块,用于基于各组内道路段的虚拟高程,对多个道路段中的未分组道路段进行平滑过渡计算,得到未分组道路段的虚拟高程;
89.合并模块,用于基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,得到新的道路组,并基于新的道路组确定下次迭代对应的各道路组;
90.第一循环迭代模块,用于返回确定各组内道路段的虚拟高程的步骤继续执行,直至不存在满足合并条件的道路组时停止,得到目标区域中各道路段对应的最终虚拟高程。
91.在其中一个实施例中,该装置还包括:
92.第三确定模块,用于确定由当前未被划分过的道路段构成的道路段集合;
93.选取模块,用于从道路段集合中选取一个道路段划分为新的道路组;
94.第一删除模块,用于在道路段集合中删除当前选取的道路段;
95.第一获取模块,用于在道路段集合中获取与新的道路组中的道路段存在关联关系的关联道路段;
96.划分模块,用于将关联道路段划分至新的道路组;
97.第二删除模块,用于在道路段集合中删除已被划分过的关联道路段,得到更新的道路段集合;
98.第二循环迭代模块,用于返回从道路段集合中选取一个道路段划分为新的道路组的步骤,并基于更新的道路段集合继续执行,直至满足划分停止条件时停止,得到多个道路组。
99.在其中一个实施例中,第一获取模块,包括:
100.第一确定单元,用于确定与目标区域对应的平面地图;
101.初次筛选单元,用于对于新的道路组中的任一道路段,基于任一道路段在平面地图上对应的框体,对道路段集合进行初次筛选,得到初次筛选结果;
102.再次筛选单元,用于基于平面地图上各道路段之间的关联关系,对初次筛选结果进行再次筛选,得到与新的道路组中的道路段存在关联关系的关联道路段。
103.在其中一个实施例中,初次筛选单元,用于确定道路段集合中每一道路段在平面地图上对应的框体;将道路段集合中框体与任一道路段对应的框体之间存在交集的道路段,作为初次筛选结果。
104.在其中一个实施例中,再次筛选单元,用于确定任一道路段在平面地图上的道路中心线;将初次筛选结果中道路中心线与任一道路段对应的道路中心线之间相交的道路段,作为与任一道路段存在关联关系的关联道路段。
105.在其中一个实施例中,再次筛选单元,还用于将初次筛选结果中与任一道路段具有相同后继道路段的道路段,作为与任一道路段存在关联关系的关联道路段;将初次筛选结果中与任一道路段具有相同前驱道路段的道路段,作为与任一道路段存在关联关系的关联道路段。
106.在其中一个实施例中,组内道路段的虚拟高程通过属于组内道路段中的组内道路点的虚拟高程表征;第二确定模块,用于对于每一道路组,遍历道路组中各组内道路段的组内道路点,确定海拔高度满足预设条件的目标组内道路点;将目标组内道路点所属的组内道路段的基准高程,作为目标组内道路点的虚拟高程,其中,基准高程基于组内道路段的道路属性确定;基于组内道路段中各组内道路点的海拔高度,以及目标组内道路点的虚拟高程,确定除目标组内道路点之外的组内道路点的虚拟高程。
107.在其中一个实施例中,平滑过渡计算模块,包括:
108.第二确定单元,用于确定与道路组对应的组内道路点集合;
109.第一获取单元,用于获取组内道路点集合中的端点,端点是道路段中位于两端位置的道路点;
110.第三确定单元,用于基于组内道路点集合中的端点与未分组道路段中端点间的连接关系,并采用平滑过渡计算方式,确定未分组道路段中用于表征过渡道路段的端点的虚拟高程;
111.第四确定单元,用于根据用于表征过渡道路段的端点的虚拟高程,确定未分组道路段中过渡道路段的虚拟高程;
112.第五确定单元,用于将未分组道路段中除过渡道路段之外的未分组道路段的虚拟高程,确定为相应未分组道路段所对应的基准高程。
113.在其中一个实施例中,第二确定单元,包括:
114.第一构建子单元,用于对于任一道路组,基于道路组中各组内道路段的组内道路点构建对应的组内道路点集合;
115.第一确定子单元,用于确定道路组中每一组内道路段分别对应的周边道路段;
116.第二确定子单元,用于对于每一组内道路段,基于组内道路段的端点从相对应的周边道路段中确定出第一垂足点,并将第一垂足点添加至组内道路点集合;
117.添加子单元,用于对于每一周边道路段,在基于周边道路段的端点确定相对应的组内道路段中存在第二垂足点的情况下,将周边道路段的端点添加至组内道路点集合。
118.在其中一个实施例中,第一确定子单元,用于确定与目标区域对应的平面地图;对于任一道路组中的任一道路段,以任一道路段的端点为中心,在平面地图上构建预设形状
区域;确定各道路段分别在平面地图上对应的框体,并将与预设形状区域之间存在交集的框体所对应的道路段作为任一道路段的周边道路段。
119.在其中一个实施例中,第二确定子单元,用于对于任一组内道路段,确定在组内道路段对应的各周边道路段中,与组内道路段的端点距离最近的最近周边道路点;基于最近周边道路点确定属于周边道路段的多个第一连线;以组内道路段的端点为起点,向属于同一周边道路段的多个第一连线分别作垂线,同一周边道路段为组内道路段的周边道路段;在垂线与第一连线间存在交点的情况下,将交点作为第一垂足点;在垂线与任一第一连线均不存在交点的情况下,以组内道路段的端点为起点分别向多个第一连线在预设方向上的第一延长线作垂线,在垂线与多个第一延迟线上均存在交点的情况下,将最近周边道路点作为第一垂足点。
120.在其中一个实施例中,第二确定单元,还包括:
121.第三确定子单元,用于对于任一周边道路段,确定在周边道路段对应的组内道路段中,与周边道路段的端点距离最近的最近组内道路点;
122.第四确定子单元,用于基于最近组内道路点确定属于组内道路段的多个第二连线;
123.作图子单元,用于以周边道路段的端点为起点,向相对应的组内道路段的多个第二连线分别作垂线;
124.第五确定子单元,用于在垂线与第二连线间存在交点的情况下,确定组内道路段中存在第二垂足点;
125.第六确定子单元,用于在垂线与任一第二连线均不存在交点的情况下,以周边道路段的端点为起点分别向多个第二连线在预设方向上的第二延长线作垂线,在垂线与多个第二延迟线上均存在交点的情况下,确定组内道路段中存在第二垂足点。
126.在其中一个实施例中,第二确定单元,还包括:
127.第七确定子单元,用于确定组内道路点集合中海拔高度满足预设条件的目标组内道路点,将目标组内道路点所属的组内道路段的基准高程,作为目标组内道路点的虚拟高程,其中,基准高程基于组内道路段的道路属性确定;
128.第八确定子单元,用于对于添加至组内道路点集合中的属于周边道路段的第一垂足点,基于目标组内道路点的海拔高度和虚拟高程,以及第一垂足点的海拔高度,确定第一垂足点的虚拟高程;
129.第九确定子单元,用于对于添加至组内道路点集合中的周边道路段的端点,基于目标组内道路点的海拔高度和虚拟高程,以及周边道路段的端点的海拔高度,确定周边道路段的端点的虚拟高程。
130.在其中一个实施例中,第三确定单元,包括:
131.第二构建子单元,用于将组内道路点集合中的端点作为第一道路端点,并基于第一道路端点构建第一集合;
132.第十确定子单元,用于从未分组道路段中,确定与第一道路端点相连接的第二道路端点;
133.第十一确定子单元,用于基于第一道路端点的虚拟高程,确定第二道路端点的虚拟高程,并将虚拟高程不小于相对应的基准高程的第二道路端点添加至第二集合;
134.增加子单元,用于从第二集合中删除最大虚拟高程对应的第二道路端点,将最大虚拟高程对应的第二道路端点更新为第一道路端点,并增加至第一集合;
135.第十二确定子单元,用于在未分组道路段中,确定与新增的第一道路端点相连接的第二道路端点;
136.第十三确定子单元,用于基于与新增的第一道路端点相连接的第二道路端点所属的集合,以及新增的第一道路端点的虚拟高程,确定与新增的第一道路端点相连接的第二道路端点的虚拟高程和最新的第二集合;
137.循环迭代子单元,用于返回将第二集合中对应最大虚拟高程的第二道路端点更新为第一道路端点的步骤并基于最新的第二集合继续执行,直至第二集合为空时停止,得到未分组道路段中表征过渡道路段的端点的虚拟高程。
138.在其中一个实施例中,第十一确定子单元,用于对于第二集合中的任一第二道路端点,获取与相连接的第一道路端点的虚拟高程、以及与相连接的第一道路端点之间的连接边长度;根据预设坡度、相连接的第一道路端点的虚拟高程、以及连接边长度,计算与任一第二道路端点相对应的候选虚拟高程;从候选虚拟高程中选取最大值,作为第二道路端点的虚拟高程。
139.在其中一个实施例中,第十三确定子单元,用于在与新增的第一道路端点相连接的第二道路端点属于最新的第一集合的情况下,维持与新增的第一道路端点相连接的第二道路端点的虚拟高程不变;在与新增的第一道路端点相连接的第二道路端点属于最新的第二集合的情况下,根据预设坡度、新增的第一道路端点的虚拟高程、以及与新增的第一道路端点之间的连接边长度,重新计算与新增的第一道路端点相连接的第二道路端点的虚拟高程;将前次计算得到的虚拟高程和重新计算得到的虚拟高程中的较大值,作为与新增的第一道路端点相连接的第二道路端点的虚拟高程;基于新增的第一道路端点与相连接第一道路端点间的连接边长度,以及新增的第一道路端点与相连接的第二道路端点间的连接边长度,更新与第二道路端点对应的连接边长度。
140.在其中一个实施例中,第十三确定子单元,还用于在与新增的第一道路端点相连接的第二道路端点不属于最新的第一集合,且不属于最新的第二集合的情况下,根据预设坡度、新增的第一道路端点的虚拟高程、以及新增的第一道路端点之间的连接边长度,计算与新增的第一道路端点相连接的第二道路端点的虚拟高程;在虚拟高程大于相对应的基准高程的情况下,将与新增的第一道路端点相连接的第二道路端点添加至第二集合;基于新增的第一道路端点与相连接第一道路端点间的连接边长度,以及新增的第一道路端点与相连接的第二道路端点间的连接边长度,更新与第二道路端点对应的连接边长度。
141.在其中一个实施例中,平滑过渡计算模块,还包括:
142.选取单元,用于在用于表征过渡道路段的端点中存在满足预设条件的端点的情况下,将满足预设条件的端点作为目标端点,预设条件包括与至少两个道路组相连接,在与目标端点相连接的所有道路组中任意选取两个道路组,分别作为第一道路组和第二道路组;
143.第二获取单元,用于将第一道路组中与目标端点相连接的端点作为第一端点,将第二道路组中与目标端点相连接的端点作为第二端点,获取第一端点与第二端点之间的目标连接边长度;
144.计算单元,用于根据预设坡度、目标连接边长度、第一端点的虚拟高程和第二端点
的虚拟高程,计算目标端点的虚拟高程。
145.在其中一个实施例中,计算单元,包括:
146.第一计算子单元,用于根据第一端点的虚拟高程和预设坡度,计算第一底边距离,根据第二端点的虚拟高程和预设坡度,计算第二底边距离;
147.划分子单元,用于在第一底边距离与第二底边距离之和不小于目标连接边长度的情况下,将第一端点与第二端点之间的道路面分为三个路面区间;
148.判断子单元,用于判断目标端点所落入的路面区间;
149.第二计算子单元,用于基于目标端点所落入的路面区间,计算目标端点的虚拟高程。
150.在其中一个实施例中,判断子单元,用于根据目标端点与第一端点之间的第一连接边长度,以及预设坡度,计算第一反推虚拟高程;在第一端点的虚拟高程与第一反推虚拟高程之间的第一差值大于目标端点的基准高程的情况下,确定目标端点落入靠近第一端点的路面区间;根据目标端点与第二端点之间的第二连接边长度,以及预设坡度,计算第二反推虚拟高程;在第二端点的虚拟高程与第二反推虚拟高程之间的第二差值大于目标端点的基准高程的情况下,确定目标端点落入靠近第二端点的路面区间;在第一差值和第二差值均不大于目标端点的基准高程的情况下,确定目标端点落入位于中间的基准路面区间。
151.在其中一个实施例中,计算单元,用于在第一底边距离与第二底边距离之和小于目标连接边长度的情况下,计算第一端点的虚拟高程与第二端点的虚拟高程之间的差值;对于目标端点与第一端点之间的第一连接边长度、以及目标端点与第二端点之间的第二连接边长度,对第一连接边长度与第二连接边长度进行求和,得到连接边长度和;计算差值与连接边长度和之间的比值,将比值与第一连接边长度进行相乘,得到对应的乘积;将第一端点的虚拟高程与乘积之间的差值,作为目标端点的虚拟高程。
152.在其中一个实施例中,第四确定单元,用于对于过渡道路段中除端点之外的任一道路点,计算过渡道路段中两端点间的虚拟高程之间的端点虚拟高程差值;获取过渡道路段的总长度,获取任一道路点与过渡道路段中起始道路点之间的道路长度,起始道路点为两端点中的一个端点;计算端点虚拟高程差值与道路长度之间乘积,并计算乘积与总长度之间的比值,将比值与过渡道路段中起始道路点的虚拟高程之间的和值作为任一道路点的虚拟高程。
153.在其中一个实施例中,合并条件包括陡坡连接条件;该装置还包括:
154.第二获取模块,用于在未分组道路段中存在与至少两个道路组中的组内道路段相连接的多连接端点的情况下,获取多连接端点分别与相连接的任意两个道路组间的连接边长度;
155.第四确定模块,用于基于与相连接的任意两个道路组间的连接边长度,确定虚拟高程的预估差值;
156.计算模块,用于根据任意两个道路组中各自与多连接端点相连接的端点的虚拟高程,计算虚拟高程的差值绝对值;
157.第五确定模块,用于在差值绝对值大于预估差值的情况下,确定任意两个道路组满足合并条件。
158.在其中一个实施例中,第四确定模块,用于对与相连接的任意两个道路组间的连
接边长度求和,得到连接边长度和;基于预设坡度和连接边长度和,确定虚拟高程的预估差值。
159.在其中一个实施例中,由道路段构成的道路至少包括单层高架道路、多层高架道路、平面道路或地下道路中的至少一种道路。
160.在其中一个实施例中,该装置还包括:
161.第一构建模块,用于基于目标区域中各道路段构成目标区域中的道路;
162.第二构建模块,用于基于道路中各道路段对应的最终虚拟高程,构建与目标区域对应的目标地图;
163.显示模块,用于以空间维度的形式显示目标地图,且目标地图在显示的过程中,具有不同最终虚拟高程的相连接的道路段,以与不同最终虚拟高程相匹配的相对关系进行呈现,相对关系包括道路上下位关系。
164.一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
165.确定目标区域中的多个道路段,并确定当次迭代对应的各道路组,道路组包括多于一个道路段,其中,初次迭代对应的道路组基于多个道路段进行关联关系划分得到;
166.对于每一道路组中的每一组内道路段,确定各组内道路段的虚拟高程;
167.基于各组内道路段的虚拟高程,对多个道路段中的未分组道路段进行平滑过渡计算,得到未分组道路段的虚拟高程;
168.基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,得到新的道路组,并基于新的道路组确定下次迭代对应的各道路组;
169.返回确定各组内道路段的虚拟高程的步骤继续执行,直至不存在满足合并条件的道路组时停止,得到目标区域中各道路段对应的最终虚拟高程。
170.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
171.确定目标区域中的多个道路段,并确定当次迭代对应的各道路组,道路组包括多于一个道路段,其中,初次迭代对应的道路组基于多个道路段进行关联关系划分得到;
172.对于每一道路组中的每一组内道路段,确定各组内道路段的虚拟高程;
173.基于各组内道路段的虚拟高程,对多个道路段中的未分组道路段进行平滑过渡计算,得到未分组道路段的虚拟高程;
174.基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,得到新的道路组,并基于新的道路组确定下次迭代对应的各道路组;
175.返回确定各组内道路段的虚拟高程的步骤继续执行,直至不存在满足合并条件的道路组时停止,得到目标区域中各道路段对应的最终虚拟高程。
176.一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行以下步骤:
177.确定目标区域中的多个道路段,并确定当次迭代对应的各道路组,道路组包括多于一个道路段,其中,初次迭代对应的道路组基于多个道路段进行关联关系划分得到;
178.对于每一道路组中的每一组内道路段,确定各组内道路段的虚拟高程;
179.基于各组内道路段的虚拟高程,对多个道路段中的未分组道路段进行平滑过渡计算,得到未分组道路段的虚拟高程;
180.基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,得到新的道路组,并基于新的道路组确定下次迭代对应的各道路组;
181.返回确定各组内道路段的虚拟高程的步骤继续执行,直至不存在满足合并条件的道路组时停止,得到目标区域中各道路段对应的最终虚拟高程。
182.上述道路的虚拟高程生成方法、装置、计算机设备、存储介质和计算机程序产品,对目标区域中的多个道路段进行分组得到各道路组,由于可先对确定道路组中组内道路段的虚拟高程,再基于组内道路段的虚拟高程进行平滑过渡处理,得到未分组道路段的虚拟高程,从而使得道路组与未分组道路段之间能够平滑过渡衔接,避免道路组与未分组道路段之间的连接处存在显示断层。再基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理得到新的道路组,并在合并处理后重新确定道路段的虚拟高程,这样可以通过迭代循环的方式,不断计算道路段的虚拟高程,再不断优化分组结果,从而使得原本分为两个道路组中的组内道路段能够保持虚拟高程的一致性,避免该两个道路组之间出现陡坡连接,进而影响三维地图在显示时的视觉呈现。这样,对道路段分组且通过平滑过渡计算的方式区分组内和组外的道路段的虚拟高程,并不断迭代循环分组情况来优化得到最终虚拟高程,可以大大提高道路的虚拟高程的准确性,使得在道路进行空间立体显示时,可以按照现实中的道路上下方位关系,有层次地显示出来。
附图说明
183.图1为一个实施例中道路的虚拟高程生成方法的应用环境图;
184.图2为一个实施例中道路分段示意图;
185.图3为一个实施例中道路段中的道路点示意图;
186.图4为一个实施例中道路的虚拟高程生成方法的流程示意图;
187.图5为一个实施例中道路段对应的框体示意图;
188.图6为一个实施例中道路段分组示意图;
189.图7为一个实施例中道路示意图;
190.图8为一个实施例中道路组与过渡道路段的连接示意图;
191.图9为一个实施例中平行道路的示意图;
192.图10为一个实施例中点向连线作垂线的示意图;
193.图11为一个实施例中点向连线的延长线作垂线的示意图;
194.图12为一个实施例中路面区间的划分示意图;
195.图13为一个实施例中路面的示意图;
196.图14为一个实施例中道路显示方法的流程示意图;
197.图15为一个实施例中三维地图的显示示意图;
198.图16为一个实施例中道路的虚拟高程生成装置的结构框图;
199.图17为一个实施例中计算机设备的内部结构图。
具体实施方式
200.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
201.首先,对本技术实施例中涉及到的名词进行简要解释说明:
202.虚拟高程:指的是平面地图中三维显示的道路相对于地面的高度。
203.道路段:指的是将平面地图中道路的分段表示,每一道路分段即为道路段。
204.道路点:指的是道路段通过道路中心线进行表示后,道路中心线上的一系列点,其数量可以提前设定。
205.拓扑关系:指的是对于存在前驱道路段或者后继道路段,道路段与前驱后路段或者后继道路段之间即为拓扑关系。
206.关联关系:指的是影响虚拟高程生成的道路段之间关系,可以进一步包括道路的压盖关系、交汇关系和分流关系,本技术实施例不对关联关系包括的内容作具体限定。
207.压盖关系:指的是对于两条道路段,若一条道路段在另一条道路段的上方,则称两条道路段存在压盖关系,处于上方的道路段压盖处于下方的道路段。
208.分流关系:指的是两个道路段具有相同的前驱道路段,则该两个道路段之间具有分流关系。
209.交汇关系:指的是两个道路段具有相同的后继道路段,则该两个道路段之间具有交汇关系。
210.基准高程:指的是根据道路段的道路属性,所确定的道路段相对于地面的高度。例如,普通道路的基准高程通常为0米,而立交桥道路的基准高程通常为3.5米。
211.预设坡度:符合道路建设规范的坡度,通常较小,如3
°

212.连接边长度:指的是两个道路点在平面地图上的投影距离。
213.本技术实施例提供的道路的虚拟高程生成方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端和服务器可分别单独用于执行本技术实施例中的道路的虚拟高程生成方法,也可协同用于执行本技术实施例中的道路的虚拟高程生成方法。比如,服务器104可以生成道路的虚拟高程,终端102可从服务器104获取道路的虚拟高程,并可根据道路的虚拟高程可以构建三维地图进行显示。数据存储系统可以存储服务器104需要处理的道路数据,根据道路数据生成道路的虚拟高程。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
214.由于现实中的道路在计算机设备中需要转化为相应的数据,才能够进行处理,从而在对本技术实施例提供的方法进行解释说明之前,可以先对道路转化为数据的过程进行解释说明。其中,道路切分为道路段的过程可参考图2。如图2所示,现实中的道路被打断成很多段,也即形成多个道路段,a~g均为道路段。其中,道路a分流出bcd三条道路,b的后继道路为e,c的后继道路为f,d的后继道路为g。需要说明的是,实际实施过程中道路分为道路
段的划分方式,可以是基于人工标注进行划分,也可以是基于道路段的长度区间进行划分,本技术实施例对此不作具体限定。
215.上述过程是道路划分为道路段的过程,主要是考虑到道路通常较长,划分为道路段便于处理与存储,同时因相对于对道路直接进行处理降低了处理粒度,也能提高数据处理的精准度。上述过程只是划分了道路,还需要对划分得到的道路段进行数据表示。可以理解的是,道路通常是具有中心线的,而中心线自然可以由一系列的点进行表示。基于上述说明,本技术实施例可以基于中心线上的一系列点对道路段进行数据表示,具体过程可参考图3。图3中显示了一个道路段及其中心线,中心线由一系列点表示。若将中心线上的点称为道路点,则每一点可以通过(x、y、height、vheight)进行表示。其中,x和y表示道路段在平面地图中的坐标,而height表示道路点的海拔高度,vheight表示道路段待生成的虚拟高程。通过上述过程即可将道路在数据存储系统中进行表达,且给出了虚拟高程对应的待生成变量。
216.在一些实施例中,结合上述名词简介、实施环境说明以及道路的数据表示方式,如图4所示,提供了一种道路的虚拟高程生成方法,以该方法应用于计算机设备(该计算机设备具体可以是图1中的终端102或服务器104),包括以下步骤:
217.步骤402、确定目标区域中的多个道路段,并确定当次迭代对应的各道路组,道路组包括多于一个道路段,其中,初次迭代对应的道路组基于多个道路段进行关联关系划分得到。
218.可以理解的是,虚拟高程的生成过程通常针对的是一片区域内的道路,本步骤中的目标区域即指的是待生成虚拟高程的道路所处的区域。“当次迭代”指的是在当前现存所有道路组(也即当次迭代对应的各道路组)的基础上,进行虚拟高程生成的过程。其中,当次迭代的具体过程可参考后续步骤,并在后续步骤中进行解释。需要说明的是,“当次迭代”实则指的是多次迭代过程中的某一次迭代过程,本技术实施例主要是以其中某一次迭代过程为示例,并作为“当次迭代”过程对虚拟高程的生成过程进行说明。另外,既然能成为道路组,自然会包括两个或两个以上的道路段。道路组一般是对道路段进行聚类所生成的,在本技术实施例中通常不会存在仅包括一个道路段的道路组。
219.还需要说明的是,既然“当次迭代”指的是多次迭代过程中的某一次迭代过程,则可以预见的是,亦会存在初次迭代。初次迭代对应的道路组是基于目标区域中的多个道路段进行关联关系划分得到的,也即作为初始划分的道路组。而在初次迭代之后迭代过程对应的道路组,是在初始划分的道路组的基础上进行不断合并所得到的,初次迭代之后的每次迭代对应的道路组均是在对上次迭代对应的道路组进行合并后所得到的。另外,关联关系的解释可参考上述名词解释的相关内容。
220.步骤404、对于每一道路组中的每一组内道路段,确定各组内道路段的虚拟高程。
221.由上述解释说明可知,组内道路段均可以使用一系列道路点进行表示。由此,在本步骤中计算机设备可以通过计算组内道路段中道路点的虚拟高程,用于表示组内道路段的虚拟高程。对于任一组内道路段中任一道路点,该道路点的虚拟高程的计算过程可以包括:计算机设备获取该道路点所处地面的虚拟高程;计算机设备获取该道路点的海拔高度,将该道路点的海拔高度与该道路点所处地面的虚拟高程之间的差值,作为该道路点的虚拟高程。通过上述计算过程,计算机设备可以得到该组内道路段中每一道路点的虚拟高程,并进
一步可以计算得到每一道路组中各组内道路段的虚拟高程。
222.当然,实际实施过程中还可以采用别的方式计算组内道路段的虚拟高程,如可以采用下述过程:在该组内道路段的起点与终点存在海拔高度差的情况下,则说明该组内道路段可能存在坡度;计算机设备先通过上述过程计算得到该组内道路段中海拔高度最高的道路点(如起点)的虚拟高程,再根据预设坡度、起点的虚拟高程以及该组内道路段中该道路点之后的道路点与该道路点之间的连接边长度(或者道路长度),依次计算得到该组内道路段中剩下道路点的虚拟高程。
223.其中,两个道路点之间的道路长度指的是两个道路点在所处路面上之间的直线距离。两个道路点之间的连接边长度指的是两个道路点在平面地图上之间的投影距离。之所以两者会存在不同,是因为平面地图无法呈现坡度,在存在坡度的情况下,作为投影距离的连接边长度与作为斜坡距离的道路长度自然不同。
224.步骤406、基于各组内道路段的虚拟高程,对多个道路段中的未分组道路段进行平滑过渡计算,得到未分组道路段的虚拟高程。
225.在本步骤中,“未分组道路段”为没有被分入道路组中的道路段的总括概念。实际实施过程中,“未分组道路段”通常不会只有一个,而是会有多个。基于目前立交桥系统的现状可知,道路组作为立交桥而存在,道路组中组内道路段的虚拟高程通常不会低于未分组道路段的虚拟高程。
226.基于上述说明,在本步骤中计算机设备之所以要进行平滑过度计算,是因为道路组通常是由一段立交桥中的道路段组团所形成的,而作为一段立交桥,通常会需要与其它道路进行衔接。而未分组道路段由于未被纳入道路组,其自然会包括作为衔接的道路段。对于未分组道路段中作为衔接的道路段、以及未分组道路段中与作为衔接的道路段之间存在连接的道路段,如果不对这些道路段进行平滑过渡计算,以未分组道路段中作为衔接的道路段为例,则可能会导致后续基于虚拟高程进行三维地图显示时,未分组道路段中作为衔接的道路段与立交桥之间的连接处存在显示断层。
227.基于上述缘由,在本步骤中计算机设备需要对多个道路段中的未分组道路段进行平滑过渡计算。之所以会基于组内道路段的虚拟高程进行计算,是因为为避免出现显示断层,自然需要使得组内道路段的虚拟高程与未分组道路段的虚拟高程之间满足平滑过渡,而基于组内道路段的虚拟高程,对未分组道路段的虚拟高程进行计算可以实现平滑过渡。
228.可以理解的是,在将道路划分为道路段时,道路段之间的连接关系是可以一并获得的。对于任一未分组道路段以及与该未分组道路段相连接的组内道路段,将该组内道路段中与该未分组道路段直接连接的道路点作为a,将该未分组道路段中与该组内道路段直接连接的道路点作为b,计算机设备可以先根据预设坡度、a的虚拟高程以及a与b之间的连接边长度,计算b的虚拟高程。在计算得到b的虚拟高程后,由于b作为平滑过渡的起点,自然海拔高度通常是最高的,而b之后道路点与b之间的连接边长度可以获知,从而计算机设备根据预设坡度、b的虚拟高程以及该未分组道路段中b之后的道路点与b之间的连接边长度,可依次计算得到该未分组道路段中剩下道路点的虚拟高程。
229.步骤408、基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,得到新的道路组,并基于新的道路组确定下次迭代对应的各道路组。
230.其中,计算机设备可以先判断是否存在满足合并条件的道路组。之所以需要对道
路组进行合并处理,是因为有些道路组之间是存在连接的,若相连接的两个道路组之间,彼此道路段的虚拟高程差距较大,则在三维地图中显示该相连接的两个道路组时,该相连接的两个道路组之间连接处可能会坡度较大(可称之为出现陡坡连接),从而不利于视觉呈现。因此,在本步骤中计算机设备通过对道路组进行合并处理,并在合并道路组后,重新返回确定各组内道路段的虚拟高程的步骤,从而使得合并后的道路组能够再重新确定组内道路段的虚拟高程,进而使得原本分为两个道路组中的组内道路段能够保持虚拟高程的一致性,避免该两个道路组之间出现陡坡连接。
231.结合上述说明可知,合并条件可以包括陡坡连接的判定条件,也即陡坡连接条件。可以理解的是,相连接的两个道路组也是通过未分组道路段进行连接的。由此,判定陡坡连接,实际上可以理解为判断连接的两个道路组的未分组道路段的坡度是否大于预设坡度。基于上述说明,实际实施过程中可以先计算该未分组道路段的坡度。具体地,计算机设备可以基于该未分组道路段中起点与终点之间的连接边长度、以及起点与终点之间的虚拟高程差,计算得到坡度。判断计算得到的坡度是否大于预设坡度,即可判定是否存在陡坡连接。
232.需要说明的是,由上述解释说明可知,道路段可以通过道路点进行表示。因此,本步骤中道路组的合并过程可以为道路点的合并过程,也即将不同道路组中的道路点合并至一个道路组。可以理解的是,当次迭代的所有道路组中并非所有道路组均能满足合并条件。因此,在本步骤中计算机设备可以基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,而不满足合并条件的道路组则维持不变,再由两者共同作为下次迭代对应的各道路组。
233.步骤410、返回确定各组内道路段的虚拟高程的步骤继续执行,直至不存在满足合并条件的道路组时停止,得到目标区域中各道路段对应的最终虚拟高程。
234.本步骤主要是循环迭代过程,上述步骤408在进行合并处理后,可以返回重新执行上述步骤404,在又执行至上述步骤408后,计算机设备可以判断是否存在满足合并条件的道路组。如果存在,则可以继续执行步骤408,并返回至步骤404。如此循环迭代,直至某一次迭代执行至步骤408时,判断不存在满足合并条件的道路组,则此时循环迭代过程结束。其中,最后一次迭代过程所确定的目标区域中各道路段的虚拟高程,即作为目标区域中各道路段对应的最终虚拟高程。
235.上述实施例中,对目标区域中的多个道路段进行分组得到各道路组,由于可先对确定道路组中组内道路段的虚拟高程,再基于组内道路段的虚拟高程进行平滑过渡处理,得到未分组道路段的虚拟高程,从而使得道路组与未分组道路段之间能够平滑过渡衔接,避免道路组与未分组道路段之间的连接处存在显示断层。再基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理得到新的道路组,并在合并处理后重新确定道路段的虚拟高程,这样可以通过迭代循环的方式,不断计算道路段的虚拟高程,再不断优化分组结果,从而使得原本分为两个道路组中的组内道路段能够保持虚拟高程的一致性,避免该两个道路组之间出现陡坡连接,进而影响三维地图在显示时的视觉呈现。这样,通过对道路段分组且通过平滑过渡计算的方式区分组内和组外的道路段的虚拟高程,并不断迭代循环分组情况来优化得到最终虚拟高程,可以大大提高道路的虚拟高程的准确性,使得在道路进行空间立体显示时,可以按照现实中的道路上下方位关系,有层次地显示出来。
236.上述实施例中提及了初次迭代过程中需要先对目标区域中的多个道路段进行初
始划分,得到初始划分的道路组。基于该项说明,在一些实施例中,还提供了一种初次迭代中道路组的划分方法,包括:确定由当前未被划分过的道路段构成的道路段集合,并从道路段集合中选取一个道路段划分为新的道路组;在道路段集合中获取与新的道路组中的道路段存在关联关系的关联道路段,并将关联道路段划分至新的道路组;在道路段集合中删除当前选取的道路段和已被划分过的关联道路段,得到最新的道路段集合;返回从道路段集合中选取一个道路段划分为新的道路组的步骤,并基于最新的道路段集合继续执行,直至满足划分停止条件时停止,得到多个道路组。
237.为了便于理解,现进行举例说明。以当前未被划分过的道路段构成的道路段集合为c为例,可以理解的是,在本技术实施例提供的方法执行之初,目标区域中的多个道路段均是作为未被划分过的道路段。以此时c中包括道路段1、道路段2、道路段3、道路段4、道路段5、道路段6、道路段7、道路段8、道路段9和道路段10为例,在本技术实施例的第一个步骤中,计算机设备可以先从c中选取一个道路段。具体地,计算机设备可以从c中任意选取一个道路段,或者按照到路段在c中的排列顺序选取一个到路段,本技术实施例对此不作具体限定。其中,排列顺序可以为生成c时道路段划分至c中的划分顺序,本技术对此也不作具体限定。
238.以计算机设备从c中选取道路段1为例,此时可以创建一个新的道路组d1,将道路段1划分至新的道路组d1中。接着,计算机设备可以从c中删除道路段1。此时,d1中仅存在一个道路段1,计算机设备可以在c中查找与道路段1存在关联关系的关联道路段。若c中道路段2与道路段1存在关联关系,则可以将道路段2划分至d1中。可以理解的是,此时d1中又多了道路段2,道路段2作为已被划分过的关联道路段,计算机设备可以从c中删除道路段2。
239.按照本技术实施例中第二个步骤中的说明,基于上述关联关系的名词解释,计算机设备接着需要在c中获取与道路段2存在关联关系的关联道路段。若c中道路段3与道路段2存在关联关系,则计算机设备可以将道路段3划分至d1中。道路段3作为已被划分过的关联道路段,可以从c中删除道路段3。可以理解的是,此时d1中又多了道路段3,本技术实施例中第二个步骤并不会停止执行,而是需要继续在c中查找与道路段3存在关联关系的关联道路段。重复上述过程,直至在c中再也找不到与d1中的道路段存在关联关系的关联道路段。此时,对d1的划分过程结束,可以得到一个道路组d1。以最终d1包括道路段1、道路段2和道路段3为例,对后续过程进行说明。
240.接着,计算机设备可以返回执行从c中选取一个道路段划分为新的道路组的步骤。此时,c中还剩下道路段4、道路段5、道路段6、道路段7、道路段8、道路段9和道路段10。以计算机设备从c中选取道路段4为例,此时计算机设备可以创建一个新的道路组d2,将道路段4划分至新的道路组d2中。接着,计算机设备可以从c中删除道路段4。然后,可以重复上述得到道路组d1的过程,对道路组2进行扩增,直至无法扩增,也即c中再也找不到与d2中的道路段存在关联关系的关联道路段。此时,对d2的划分过程结束。
241.重复上述构建道路组的过程,直至计算机设备从c中选取一个道路段并准备划分为新的道路组时,从c中再也找不到与当前选取的道路段存在关联关系的关联道路段。此时,说明按照上述过程再也无法创建新的道路组。此时,可以停止初次迭代对应的道路组构建过程,将已构建的道路组作为初次迭代对应的道路组,而将上述步骤402提及的“多个道路段”中,除已构建的道路组中包含的道路段之外所剩下的道路段,作为多个道路段中的未
分组道路段。
242.由上述说明可知,本技术实施例提及的停止条件可以包括“从道路段集合中选取一个道路段划分为新的道路组时,道路段集合中每一道路段与新的道路组中的道路段均不存在关联关系”。当然,实际实施过程中,停止条件也可以包括其它内容,如构建道路组的数量达到预设数量,本技术实施例对此不作具体限定。
243.上述实施例中,由于可通过循环遍历过程构建得到初次迭代对应的道路组,从而在基于关联关系构建新的道路组时,不会遗漏道路段集合中与新的道路组中的道路段存在关联关系的道路段,进而可以保证构建结果的精准性。
244.在一些实施例中,在道路段集合中获取与新的道路组中的道路段存在关联关系的关联道路段,包括:确定与目标区域对应的平面地图;对于新的道路组中的任一道路段,基于任一道路段在平面地图上对应的框体,对道路段集合进行初次筛选,得到初次筛选结果;基于平面地图上各道路段之间的关联关系,对初次筛选结果进行再次筛选,得到与新的道路组中的道路段存在关联关系的关联道路段。
245.其中,框体可以基于道路段的边界所确定,也可以基于道路段的中心线所确定,本技术实施例对此不作具体限定。可以理解的是,框体可以在某种程度代表道路段的边界。对于边界相交的两个道路段,可能会因为距离近而互相影响虚拟高程的确定,从而可作为可能存在关联关系的两个道路段。基于上述说明,初次筛选的依据可以包括框体是否存在交集,或者还可以进一步包括交集面积是否大于预设面积,本技术实施例不对初次筛选的筛选条件作具体限定。
246.可以理解的是,距离近的道路段可能会进一步产生关联关系。而存在关联关系的两个道路段更有可能会互相影响虚拟高程的确定,从而在初次筛选的基础上,计算机设备可基于关联关系作进一步筛选,也即执行再次筛选的过程。
247.上述实施例中,由于可以通过初次筛选与再次筛选的两次筛选过程,在道路段集合中获取与新的道路组中的道路段存在关联关系的关联道路段,从而可使得获取结果更加精准。另外,通过初次筛选可以初步排除掉不存在关联关系的道路段,相对于不作初次筛选而直接执行再次筛选的过程,两次筛选过程可以降低整体计算量。
248.在一些实施例中,基于任一道路段在平面地图上对应的框体,对道路段集合进行初次筛选,包括:确定道路段集合中每一道路段在平面地图上对应的框体;将道路段集合中框体与任一道路段对应的框体之间存在交集的道路段,作为初次筛选结果。
249.其中,以基于道路段的中心线确定道路段对应的框体为例,道路段对应的框体可以参考图5。当然,除了图5所示的,将道路段的起点与终点作为框体对角的两个顶点以确定框体的方式之外,实际实施过程中计算机设备也可以采用其它方式,如以中心线的中点作为正方形框体的中心点,以中心线的长度作为正方形框体的边长确定正方形框体,本技术实施例不对确定框体的方式作具体限定。
250.由于框体在平面地图中的边界线可以确定,从而对于某一框体,计算机设备基于该框体的边界线与平面地图中其它框体的边界线,可以确定哪些框体与该框体存在交集。通过该说明,对于新的道路组中的任一道路段,可以得到道路段集合中框体与该道路段对应的框体之间存在交集的道路段。
251.上述实施例中,由于框体相交的两个道路段,可能会因为距离近而互相影响虚拟
高程的确定,从而基于框体交集进行初次筛选,可尽可能筛选出虚拟高程互相影响的道路段,进而使得后续虚拟高程的确定结果更加全面且精准。
252.在一些实施例中,基于平面地图上各道路段之间的关联关系,对初次筛选结果进行再次筛选,得到与新的道路组中的道路段存在关联关系的关联道路段,包括:确定任一道路段在平面地图上的道路中心线;将初次筛选结果中道路中心线与任一道路段对应的道路中心线之间相交的道路段,作为与任一道路段存在关联关系的关联道路段。
253.由上述名词解释可知,关联关系可以包括压盖关系。在本技术实施例中,主要是基于压盖关系对道路段进行筛选的过程。
254.上述实施例中,由于道路中心线相交的两个道路段,会存在压盖关系,而压盖关系的两个道路段可能会互相影响虚拟高程的确定,从而基于道路中心线相交进行再次筛选,可尽可能筛选出虚拟高程互相影响的道路段,进而使得后续虚拟高程的确定结果更加全面且精准。
255.在一些实施例中,基于平面地图上各道路段之间的关联关系,对初次筛选结果进行再次筛选,得到与新的道路组中的道路段存在关联关系的关联道路段,还包括:将初次筛选结果中与任一道路段具有相同后继道路段的道路段,作为与任一道路段存在关联关系的关联道路段;将初次筛选结果中与任一道路段具有相同前驱道路段的道路段,作为与任一道路段存在关联关系的关联道路段。
256.由上述关联关系的名词解释可知,在本技术实施例中,主要是基于分流关系和交汇关系对道路段进行筛选的过程。可以理解的是,道路段是由道路划分而成,而划分得到相邻道路段自然是连通的,而道路之间通常也会是连通的。在所有道路段构成的图中,某一道路段可能会存在前驱道路段或者后继道路段,或者两者都存在。基于上述说明,对于新的道路组中的任一道路段,计算机设备可以确定出初次筛选结果中哪些道路段与该道路段存在相同的前驱道路段或者后继道路段。
257.需要说明的是,分流关系所对应的筛选流程、交汇关系所对应的筛选流程以及压盖关系所对应的筛选流程,可以同属于再次筛选的过程。三个方法流程在执行时序上可以同时执行,也可以分先后执行,本技术实施例不对执行时序作具体限定。其中,道路段分组后所形成的分组可参考图6。如图6所示,g1、g2和g3为道路组,位于边界且具有填充的点为道路组中的组内道路段与未分组道路段之间的临界点。各个点之间的连线为未分组道路段,各个道路组之间无交集,存在连通的不同道路组之间通过未分组道路段形成连通路径。
258.上述实施例中,由于存在相同前驱道路段或者后继道路段的两个道路段,可能会因为具备相同邻接道路段而互相影响虚拟高程的确定,从而基于是否具有相同的前驱道路段或者后继道路段进行再次筛选,可尽可能筛选出虚拟高程互相影响的道路段,进而使得后续虚拟高程的确定结果更加全面且精准。
259.上述过程主要是初次迭代对应的道路组划分过程。在确定初次迭代对应的道路组后,计算机设备可以确定每一道路组中每一组内道路段的虚拟高程。在一些实施例中,组内道路段的虚拟高程通过属于组内道路段中的组内道路点的虚拟高程表征;相应地,确定各组内道路段的虚拟高程,包括:对于每一道路组,遍历道路组中各组内道路段的组内道路点,确定海拔高度满足预设条件的目标组内道路点;将目标组内道路点所属的组内道路段的基准高程,作为目标组内道路点的虚拟高程,其中,基准高程基于组内道路段的道路属性
确定;基于组内道路段中各组内道路点的海拔高度,以及目标组内道路点的虚拟高程,确定除目标组内道路点之外的组内道路点的虚拟高程。
260.其中,预设条件可以包括海拔高度最低或者海拔高度低于预设值,本技术实施例对此不作具体限定。需要说明的是,当满足预设条件的目标组内道路点的数量为多个时,“目标组内道路点所属的组内道路段的基准高程”可以取多个基准高程的平均值,“目标组内道路点的虚拟高程”同样可以取多个虚拟高程的平均值。
261.以预设条件为海拔高度最低为例,对于任一道路组,若该道路组中海拔高度最低的道路点数量为1个,计算机设备将该道路点作为该道路组中的目标组内道路点。将该目标组内道路点的基准高程记为hamin,将该目标组内道路点的海拔高度记为hmin。对于该道路组中除目标组内道路点之外的任一组内道路点,计算机设备获取该组内道路点的海拔高度,再根据该组内道路点的海拔高度、hamin和hmin,确定该组内道路点的虚拟高程。
262.其中,根据该组内道路点的海拔高度、hamin和hmin,确定该组内道路点的虚拟高程的过程可以通过如下过程计算得到:该组内道路点的海拔高度-hmin hamin。通过上述过程,对于每一道路组,可以计算得到每一组内道路段中每一组内道路点的虚拟高程。
263.需要说明的是,上述过程之所以需要将具有关联关系的道路段归入至同一道路组统一计算组内道路段的虚拟高程,主要是因为如果不考虑压盖关系,可能会造成后续通过三维地图对道路进行显示时显示的压盖关系与现实不符。而如果不考虑交汇和分流关系,则可能会造成某一道路段会作为未分组道路段,而将该道路段的虚拟高程确定为基准高程,造成与现实不符。
264.例如,如图7所示,现实中道路a是沿前进方向从北向南(从上到下)高度迅速下降。按照上述流程,若道路b与道路a因具有相同的前驱道路段而被归入同一道路组,并按照组内道路段的虚拟高程确定方式来确定虚拟高程,此时a的虚拟高程会逐步下降,也即会符合现实情况。若b被归入了道路组,而道路a没被归入道路组,则a可能会被作为未分组道路段,并将虚拟高程直接设置为基准高程。此时,a道路沿前进方向虚拟高程会一直保持不变,显然不符合现实情况。
265.上述实施例中,由于每一组内道路点的虚拟高程均是基于目标组内道路点的基准高程和目标组内道路点的海拔高度所确定的,从而可以保证道路组内所有组内道路点的虚拟高程的一致性,进而可以避免组内道路点因采用不同的依据计算虚拟高程而造成误差放大。
266.在一些实施例中,基于各组内道路段的虚拟高程,对多个道路段中的未分组道路段进行平滑过渡计算,得到未分组道路段的虚拟高程,包括:确定与道路组对应的组内道路点集合,获取组内道路点集合中的端点,端点是道路段中位于两端位置的道路点;基于组内道路点集合中的端点与未分组道路段中端点间的连接关系,并采用平滑过渡计算方式,确定未分组道路段中用于表征过渡道路段的端点的虚拟高程;根据用于表征过渡道路段的端点的虚拟高程,确定未分组道路段中过渡道路段的虚拟高程;将未分组道路段中除过渡道路段之外的未分组道路段的虚拟高程,确定为相应未分组道路段所对应的基准高程。
267.其中,与道路组对应的组内道路点集合,可以直接由道路组中所有道路段的所有道路点所构成。为了便于理解,如图8所示,现结合图8对上述过程进行解释说明。对于道路组g对应的组内道路点集合,a1、a2和a3均为该组内道路点集合中的端点,且是与未分组道
路段相连接的端点。该组内道路点集合中除了a1、a2和a3三个端点之外,还包括其它端点,还包括其它不是端点的道路点。而b1、b2、b3、c1、c2和c3均位于道路组g外,均为未分组道路段的端点。
268.结合图8可知,a1与b2所形成的道路段即为未分组道路段,且是作为未分组道路段中的过渡道路段,用于直接连接道路组。同时,b2即为用于表征过渡道路段的端点。同理,图8中b1和b3同样为用于表征过渡道路段的端点。可以理解的是,之所以通过平滑过渡计算,确定b1、b2和b3各自的虚拟高程,也是为了避免a1与b2、a3与b1、以及a2与b3之间产生显示断层。以a1与b2为例,平滑过渡计算过程可参考上述实施例的内容,也即根据预设坡度、a1的虚拟高程以b2与a1之间的连接边长度,计算得到b2的虚拟高程。其中,计算方式可以为:a1的虚拟高程-连接边长度*tan(3
°
)。
269.上述过程仅通过平滑过渡计算,得到了未分组道路段中用于表征过渡道路段的端点的虚拟高程,且是道路组g直接连接的过渡道路段的端点。而可以理解的是,作为平滑过渡的道路通常不会仅划分为一个道路段,而是划分为多个道路段,作为平滑过渡的道路对应的所有道路段可能会都要作为过渡道路段,如图8中的b3与c1之间的道路段也可能会作为过渡道路段。其中,过渡道路段的划分依据可以是基于预设数量所确定。如图8所示,可以确定a1与b2之间的道路段为过渡道路段,则a1与b2之间的道路段之后依次连接的预设数量个道路段均可以作为过渡道路段。
270.基于上述过程,可以计算得到过渡道路段中与道路组直接连接的端点的虚拟高程。而用于表征过渡道路段的端点可能并非只包括与道路组直接连接的端点,以b3与c1之间的道路段为例,若该道路段也为过渡道路段,则还需要计算c1的虚拟高程。具体地,也可以基于相同的方式计算c1的虚拟高程,过程如下:b3的虚拟高程-b3与c1之间的连接边长度*tan(3
°
)。
271.上述过程主要是计算得到了用于表征过渡道路段的端点的虚拟高程,而未分组道路段中的过渡道路段也是由一系列的道路点进行表示的,从而计算机设备还可以计算过渡道路段中除端点之外的道路点的虚拟高程。其中,确定过程可参考上述实施例中的内容。具体地,对于任一过渡道路段,平滑过渡通常是由高至低进行平滑过渡,计算机设备通过上述过程可以计算得到该过渡道路段中海拔高度最高的端点(如起点)的虚拟高程。计算机设备再根据该端点的虚拟高程、预设坡度以及该过渡道路段中该端点之后的道路点与该端点之间的连接边长度,依次计算得到该过渡道路段中剩下道路点的虚拟高程。
272.可以理解的是,未分组道路段中除了过渡道路段之外还有其它道路段,这些道路段不参与平滑过渡。因此,在本技术实施例中计算机设备可将这些道路段的虚拟高程直接确定为道路段对应的基准高程。其中,对于虚拟高程被确定为基准高程的任一道路段,该道路段中每一道路点的虚拟高程均为基准高程。
273.上述实施例中,由于可基于组内道路点集合中端点的虚拟高程进行平滑过渡处理,得到未分组道路段中过渡道路段的虚拟高程,从而使得道路组与未分组道路段之间能够平滑过渡衔接,避免道路组与未分组道路段之间的连接处存在显示断层。另外,由于将未分组道路段中的过渡道路段与非过渡道路段分开确定虚拟高程,可避免计算过程互相产生影响,从而可以提高虚拟高程确定结果的精准性。
274.上述实施例中提及了组内道路点集合可以直接由道路组中所有道路段的所有道
路点所构成,且针对组内道路点是采用统一的方式计算虚拟高程。然而,实际实施过程中,有些道路点可能没有被加入至组内道路点集合中,但却与组内道路点的虚拟高程比较近似。例如,如图9所示,以道路段r1与道路段r2同属于一个道路组为例。在虚拟高程的确定过程中,道路r1在终点e处的虚拟高程可能仍然比较高,而道路r2的后续道路段(从上至下)会因采用了平滑过渡处理,而导致后续道路段平滑过渡至与e平齐处时,虚拟高程已经下降的比较严重。而在现实中,平行的道路段虚拟高程通常是相近的。由此,对于上述情形下的某些道路点,加入至组内道路点集合并采用统一的方式确定虚拟高程会比较合适。
275.基于上述说明,在一些实施例中,确定与道路组对应的组内道路点集合,包括:对于任一道路组,基于道路组中各组内道路段的组内道路点构建对应的组内道路点集合;确定道路组中每一组内道路段分别对应的周边道路段;对于每一组内道路段,基于组内道路段的端点从相对应的周边道路段中确定出第一垂足点,并将第一垂足点添加至组内道路点集合;对于每一周边道路段,在基于周边道路段的端点确定相对应的组内道路段中存在第二垂足点的情况下,将周边道路段的端点添加至组内道路点集合。
276.由上述说明可知,可能需要考虑将道路段r4中与e平齐处的道路点加入至组内道路点集合中,以采用统一的方式确定虚拟高程,而避免出现上述与现实不符的情形。而如图9所示,r4作为与r1平行且现实中虚拟高程相近的道路段,r4与r1之间的距离通常也会比较近。因此,在本技术实施例的第二个步骤中,对于任一道路组中任一道路段,计算机设备可以先确定与该道路段距离较近的道路段,也即周边道路段。其中,周边道路段的确定方式可以包括:计算机设备计算该道路段的道路中心线中点与剩下的每一道路段的道路中心线中点之间的距离,将距离小于预设距离的道路段作为该道路段对应的周边道路段。当然,实际实施过程中还可以采用其它方式确定周边道路段,本技术实施例对此不作具体限定。
277.由于本技术实施例主要考虑的是将平行道路段的道路点添加至组内道路点集合,以避免平行道路段确定的虚拟高程与现实不符,从而对于任一组内道路段以及该道路段对应的任一周边道路段,以该组内道路段的端点向该周边道路段作垂线,若该组内道路段与该周边道路段相互平行,则该垂线在该周边道路段上自然会形成垂足,也即第一垂足点。此时,计算机设备可以将该第一垂足点添加至该组内道路段对应的组内道路点集合。
278.上述过程主要是基于组内道路段的端点向对应的周边道路段作垂线,以在对应的周边道路段中寻找与该组内道路段可能相互平行的道路段。为避免遗漏,还可以基于每一周边道路段的端点向对应的组内道路段作垂线,以在对应的组内道路段中反向寻找与该周边道路段可能相互平行的组内道路段,也即对应本技术实施例中最后一个步骤。对于任一组内道路段以及该道路段对应的任一周边道路段,以该周边道路段的端点向该组内道路段作垂线,若该组内道路段与该周边道路段相互平行,则该垂线在该组内道路段上自然会形成垂足,也即第二垂足点。此时,计算机设备可以将该第二垂足点添加至该组内道路段对应的组内道路点集合。
279.上述实施例中,由于可以通过作垂足点的方式寻找与组内道路段距离相近且相互平行的道路段,并将垂足点添加至组内道路点集合,以采用统一的方式确定虚拟高程,从而可以避免距离相近且相互平行的道路段确定出的虚拟高程与现实不符。
280.在一些实施例中,确定道路组中每一组内道路段分别对应的周边道路段,包括:确定与目标区域对应的平面地图;对于任一道路组中的任一道路段,以任一道路段的端点为
中心,在平面地图上构建预设形状区域;确定各道路段分别在平面地图上对应的框体,并将与预设形状区域之间存在交集的框体所对应的道路段作为任一道路段的周边道路段。
281.其中,预设形状可以为正方形,也可以为圆形,本技术实施例对此不作具体限定。需要说明的是,道路段通常会存在两个端点,该两个端点可以各自构建一个预设形状区域,而各道路段对应的框体可参考上述实施例中提及的构建过程。
282.上述实施例中,由于可以先筛选出周边道路段,再在周边道路段的基础上寻找平行道路段,从而可以降低筛选量,以减少计算量。
283.在一些实施例中,基于组内道路段的端点从相对应的周边道路段中确定出第一垂足点,包括:对于任一组内道路段,确定在组内道路段对应的各周边道路段中,与组内道路段的端点距离最近的最近周边道路点;基于最近周边道路点确定属于周边道路段的多个第一连线;以组内道路段的端点为起点,向属于同一周边道路段的多个第一连线分别作垂线,同一周边道路段为组内道路段的周边道路段;在垂线与第一连线间存在交点的情况下,将交点作为第一垂足点;在垂线与任一第一连线均不存在交点的情况下,以组内道路段的端点为起点分别向多个第一连线在预设方向上的第一延长线作垂线,在垂线与多个第一延迟线上均存在交点的情况下,将最近周边道路点作为第一垂足点。
284.为了便于理解,对于任一道路组中的任一组内道路段以及该组内道路段对应的任一周边道路段,现结合图10,对以该组内道路段的端点为起点,向该周边道路段确定第一垂足点的过程进行说明。如图10所示,该组内到路段的端点为a,为了便于说明,将在不同情况下的端点分为a1、a2和a3。其中,b为该周边道路段中距离a距离最近的最近周边道路点。
285.第一连线指的是以最近周边道路点为其中一个端点的连线。多个第一连线可以包括由最近周边道路点与该周边道路段中最近周边道路点的前一道路点所构成的连线,以及由最近周边道路点与该周边道路段中最近周边道路点的后一道路点所构成的连线。其中,前一道路点中的“前一”和后一道路点中的“后一”均与道路方向相关。在图10中,c为b的前一道路点,d为b的后一道路点,cb与db对应的连线均为第一连线。
286.在图10中,若a处于a1所在位置,则可以看出a1向cb作垂线,垂线会与cb存在交点,则交点即为第一垂足点。若a处于a3所在位置,则可以看出a3向db作垂线,垂线也会与db存在交点,则交点即为第一垂足点。上述两种情形均是a向第一连线作垂线,垂线与第一连线存在交点的情形。在该情形下,可将交点作为第一垂足点添加至组内道路点集合。需要说明的是,实际实施过程中该交点可能并非是连线对应道路段中原本的道路点。此时,可以将该交点作为新增道路点添加至组内道路点集合。
287.若a处于a2位置,则很明显的,a2向cb作垂线会落入至cb的第一延长线上,a2向db作垂线会落入至db的第一延长线上,也即两条垂线与任一第一连线均不存在交点。此时,可以接着以a2为起点分别向多个第一连线在预设方向上的第一延长线作垂线。其中,预设方向指的是朝向最近周边道路点延伸的方向。第一连线cb在预设方向的第一延长线与第一连线db在预设方向的第一延长线可如图11所示,从图11中可知,从a2分别向该两个第一延长线作垂线,垂线与每一第一延长线均存在交点。此时,可将最近周边道路点b作为第一垂足点。
288.需要说明的是,之所以在垂线与每一第一延长线均存在交点的情况下,将最近周边道路点b作为第一垂足点,是因为b所属的道路中心线可能并非是一条直线。而之所以b所
属的道路中心线并非是一条直线,可能是因为道路点提取误差、道路构建时的误差或者道路构建时有意为之等情形所造成的。上述情形通常在整体视觉上并不会影响看待两个平行道路段之间的平行性,但可能会导致直接向连线作垂线,垂线与连线不存在交点。综上,为了保证在上述情形下依然能够识别出平行道路段,所以在垂线与每一第一延长线均存在交点的情况下,才将最近周边道路点作为第一垂足点。
289.若垂线并非与每一第一延长线均存在交点,则b不作为第一垂足点。此时,关于该周边道路段的第一垂足点的确定过程结束,计算机设备可以换该组内道路段对应的另一个周边道路段,继续重复执行上述过程,直至该组内道路段的第一垂足点的确定过程结束。接着,计算机设备可以换该道路组中的另一组内道路段继续重复执行上述过程,直至该道路组中每一组内道路段都执行一遍上述过程。最后,计算机设备再换一个道路组,重复执行上述道路组对应的执行过程。
290.上述实施例中,由于可以先筛选出周边道路段,再在周边道路段的基础上寻找平行道路段,从而可以降低筛选量,以减少计算量。另外,通过在垂线与每一第一延长线均存在交点的情况下,将最近周边道路点作为第一垂足点,可以保证在道路点提取误差、道路构建时的误差或者道路构建时有意为之等情形下依然能够识别出平行道路段。
291.上述过程主要是基于组内道路段的端点向对应的周边道路段作垂线,以在对应的周边道路段中寻找与该组内道路段可能相互平行的道路段。除此之外,还可以基于每一周边道路段的端点向该组内道路段作垂线,以在对应的周边道路段中反向寻找与该组内道路段可能相互平行的道路段。在一些实施例中,该方法还包括:对于任一周边道路段,确定在周边道路段对应的组内道路段中,与周边道路段的端点距离最近的最近组内道路点;基于最近组内道路点确定属于组内道路段的多个第二连线;以周边道路段的端点为起点,向相对应的组内道路段的多个第二连线分别作垂线;在垂线与第二连线间存在交点的情况下,确定组内道路段中存在第二垂足点;在垂线与任一第二连线均不存在交点的情况下,以周边道路段的端点为起点分别向多个第二连线在预设方向上的第二延长线作垂线,在垂线与多个第二延迟线上均存在交点的情况下,确定组内道路段中存在第二垂足点。
292.通过上述确定周边道路段的过程,对于任一道路组,该道路组中所有组内道路段对应的所有周边道路段是可以确定的。对于所有周边道路段中的任一周边道路段,关于该道路组,该周边道路段对应的组内道路段即为该道路组中的所有组内道路段。为了便于理解,现结合图10对该过程进行说明。对于任一周边道路段以及该周边道路段对应的任一组内道路段,以该周边道路段的端点为a为例,同样计算机设备可以先确定该组内道路段中与a距离最近的最近组内道路点,在图10中为b。接着,计算机设备可以基于b确定属于该组内道路段的多个第二连线。
293.其中,第二连线指的是以最近组内道路点为其中一个端点的连线。多个第一连线可以包括由最近组内道路点与该组内道路段中最近组内道路点的前一道路点所构成的连线,以及由最近组内道路点与该组内道路段中最近组内道路点的后一道路点所构成的连线。关于垂线与第二连线之间的交点判断过程、以及垂线与第二延长线之间的交点判断过程,可以参考上述实施例的内容,此处不再赘述。需要说明的是,在垂线与第二连线间存在交点的情况下,或者,在垂线与任一第二连线均不存在交点且在垂线与多个第二延迟线上均存在交点的情况下,则计算机设备可以确定该组内道路段中存在第二垂足点。
294.此时,不需要像上述实施例中那样将垂线与第二连线的交点添加至组内道路点集合,也不需要将最近组内道路点添加至组内道路点集合(最近组内道路点本身就在组内道路点集合中),而是将该周边道路段的端点添加至组内道路点集合。
295.上述实施例中,由于可以基于每一周边道路段的端点向对应的组内道路段作垂线,以在对应的组内道路段中反向寻找与该周边道路段可能相互平行的组内道路段,从而可以避免遗漏。
296.在上述实施例中,计算机设备已经确定过组内道路段的虚拟高程,也即组内道路段的各组内道路点的虚拟高程。可以理解的是,组内道路段的各组内道路点,均被包含在对应的组内道路点集合中。而在上述向组内道路点集合添加道路点的实施例中,又向组内道路点集合中添加了新的道路点,对于这些新添加的道路点,计算机设备同样需要确定虚拟高程。
297.基于该项说明,在一些实施例中,该方法还包括:确定组内道路点集合中海拔高度满足预设条件的目标组内道路点;将目标组内道路点所属的组内道路段的基准高程,作为目标组内道路点的虚拟高程,其中,基准高程基于组内道路段的道路属性确定;对于添加至组内道路点集合中的属于周边道路段的第一垂足点,基于目标组内道路点的海拔高度和虚拟高程,以及第一垂足点的海拔高度,确定第一垂足点的虚拟高程;对于添加至组内道路点集合中的周边道路段的端点,基于目标组内道路点的海拔高度和虚拟高程,以及周边道路段的端点的海拔高度,确定周边道路段的端点的虚拟高程。
298.其中,预设条件可参考上述确定组内道路段的虚拟高程对应实施例中的相关说明。以预设条件为海拔高度最低为例,若目标组内道路点的数量为1个,将该目标组内道路点的基准高程记为hamin,将该目标组内道路点的海拔高度记为hmin,则周边道路段的端点的虚拟高程可以通过如下过程确定:该端点的海拔高度-hmin hamin。而对于属于周边道路段的第一垂足点,计算机设备也可以通过如下过程确定虚拟高程:该第一垂足点的海拔高度-hmin hamin。需要说明的是,鉴于平行道路段作为特殊情形存在,上述实施例中作为垂足点补充加入至组内道路点集合的道路点,在采用组内道路段的虚拟高程的统一确定方式确定虚拟高程之后,计算机设备可以维持其虚拟高程不再改变。
299.上述实施例中,由于可以通过作垂足点的方式寻找与组内道路段距离相近且相互平行的道路段,并将垂足点添加至组内道路点集合,以采用统一的方式确定虚拟高程,从而可以避免距离相近且相互平行的道路段确定出的虚拟高程与现实不符。
300.上述实施例依次提及的主要是道路组的划分过程、平滑过渡计算的大致过程以及组内道路点集合的确定过程。现对平滑过渡计算的过程进行详细说明,在一些实施例中,基于组内道路点集合中的端点与未分组道路段中端点间的连接关系,并采用平滑过渡计算方式,确定未分组道路段中用于表征过渡道路段的端点的虚拟高程,包括:
301.将组内道路点集合中的端点作为第一道路端点,并基于第一道路端点构建第一集合;从未分组道路段中,确定与第一道路端点相连接的第二道路端点;基于第一道路端点的虚拟高程,确定第二道路端点的虚拟高程,并将虚拟高程不小于相对应的基准高程的第二道路端点添加至第二集合;从第二集合中删除最大虚拟高程对应的第二道路端点,将最大虚拟高程对应的第二道路端点更新为第一道路端点,并增加至第一集合;在未分组道路段中,确定新增的第一道路端点相连接的第二道路端点;基于与新增的第一道路端点相连接
的第二道路端点所属的集合,以及新增的第一道路端点的虚拟高程,确定与新增的第一道路端点相连接的第二道路端点的虚拟高程和最新的第二集合;返回将第二集合中对应最大虚拟高程的第二道路端点更新为第一道路端点的步骤并基于最新的第二集合继续执行,直至第二集合为空时停止,得到未分组道路段中表征过渡道路段的端点的虚拟高程。
302.为了便于理解,对于任一组内道路点集合,以该组内道路点集合中的端点构建得到的第一集合为s为例,结合图8对上述过程进行说明。由上述实施例可知,在基于周边道路段的端点确定相对应的组内道路段中存在第二垂足点的情况下,该周边道路段的端点也会添加至组内道路点集合。由此,若组内道路点集合中存在周边道路段的端点,则s中也会包括周边道路段的端点。
303.在图8中,以第一道路端点a1为例,与a1相连接的第二道路端点为b2。由此,计算机设备可以基于a1的虚拟高程,确定b2的虚拟高程。具体地,计算机设备可以根据预设坡度、a1的虚拟高程以及a1与b2之间的连接边长度,确定b2的虚拟高程,本技术实施例对此不作具体限定。
304.可以理解的是,虚拟高程不会低于对应的基准高程。因此,计算机设备可以从与第一道路端点相连接的所有第二道路端点中,删除虚拟高程小于相对应的基准高程的第二道路端点,仅将剩下的第二道路端点添加至第二集合,后续以第二集合为t为例进行说明。结合图8,在b1、b2和b3所确定的虚拟高程均大于相对应的基准高程的情况下,此时s中包括a1、a2和a3,而t中包括b1、b2和b3。
305.以t中最大虚拟高程对应的第二道路端点为b2为例,计算机设备可从t中删除b2,而将b2更新为第一道路端点并加入至s中。此时,s中包括a1、a2、a3和b2,而t中包括b1和b3。此时,结合图8可知,与b2相连接的第二道路端点为b3与c3。接着,计算机设备可以判断b3与c3各自所属的集合,是为第一集合,还是第二集合。计算机设备基于b3所属的集合以及b2的虚拟高程,可以确定b3的虚拟高程,并可以基于确定结果决定是否需要对第二集合进行更新,以同时得到最新的第二集合。同理,计算机设备基于c3所属的集合以及b2的虚拟高程,可以确定c3的虚拟高程,并可以基于确定结果决定是否需要对第二集合进行更新,以同时得到最新的第二集合。
306.通过上述过程,即可完成关于b2的相关计算。此时,计算机设备可以继续从t中确定最大虚拟高程对应的第二道路端点,并重复执行上述过程,直至第二集合为空为止。通过上述迭代过程,即可计算得到未分组道路段中表征过渡道路段的端点的虚拟高程。
307.上述实施例中,由于可基于组内道路点集合中端点的虚拟高程进行平滑过渡处理,得到未分组道路段中过渡道路段的虚拟高程,从而使得道路组与未分组道路段之间能够平滑过渡衔接,避免道路组与未分组道路段之间的连接处存在显示断层。
308.在一些实施例中,基于第一道路端点的虚拟高程,确定第二道路端点的虚拟高程,包括:对于第二集合中的任一第二道路端点,获取与相连接的第一道路端点的虚拟高程、以及与相连接的第一道路端点之间的连接边长度;根据预设坡度、相连接的第一道路端点的虚拟高程、以及连接边长度,计算与任一第二道路端点相对应的候选虚拟高程;从候选虚拟高程中选取最大值,作为第二道路端点的虚拟高程。
309.可以理解的是,对于第二道路端点而言,可能会与不止一个第一道路端点相连接,也即一个过渡道路段可能会连接多个道路组。因此,对于存在多个相连接的第一道路端点
的第二道路端点,在本实施例中,计算机设备可以计算该第二道路端点与每一第一道路端点相连接时所对应的候选虚拟高程,再基于候选虚拟高程,确定该第二道路端点的虚拟高程。
310.例如,以第二道路端点b3同时连接三个第一道路端点,且分别为a1、a2和a3为例,可以通过如下过程计算得到与a1相对应的候选虚拟高程:a1的虚拟高程-a1与b3之间的连接边长度*tan(3
°
)。通过该过程,还可以分别计算得到与a2和a3相对应的候选虚拟高程。从三个候选虚拟高程选取最大值作为b3的虚拟高程。
311.上述实施例中,由于可综合每一相连接的第一道路端点的虚拟高程,以计算第二道路端点的虚拟高程,从而可以使得计算结果更加精准。
312.在一些实施例中,基于与新增的第一道路端点相连接的第二道路端点所属的集合,以及新增的第一道路端点的虚拟高程,确定与新增的第一道路端点相连接的第二道路端点的虚拟高程和最新的第二集合,包括:
313.在与新增的第一道路端点相连接的第二道路端点属于最新的第一集合的情况下,维持与新增的第一道路端点相连接的第二道路端点的虚拟高程不变;在与新增的第一道路端点相连接的第二道路端点属于最新的第二集合的情况下,根据预设坡度、新增的第一道路端点的虚拟高程、以及与新增的第一道路端点之间的连接边长度,重新计算与新增的第一道路端点相连接的第二道路端点的虚拟高程;将前次计算得到的虚拟高程和重新计算得到的虚拟高程中的较大值,作为与新增的第一道路端点相连接的第二道路端点的虚拟高程;基于新增的第一道路端点与相连接第一道路端点间的连接边长度,以及新增的第一道路端点与相连接的第二道路端点间的连接边长度,更新与第二道路端点对应的连接边长度。
314.为了便于理解,现结合上述示例进行解释说明。以新增的第一道路端点为b2,与b2相连接的第二道路端点为b3为例,结合图8可知,b3不属于最新的第一集合s(此时s中包括a1、a2、a3和b2)。需要说明的是,在b3属于s的情况下,由于s中的端点由原本的组内道路点(本身会作为平滑过渡的起点)和新增的第一道路端点所构成,在上述实施例中组内道路点存在统一的虚拟高程确定过程,新增的第一道路端点已经进行过平滑过渡处理,从而b3没有必要再次进行平滑过渡。因此,在b3属于s的情况下,可以维持b3的虚拟高程不变。
315.结合图8可知,b3属于最新的第二集合t。由此可知,b3还是作为与道路组直接连接的端点而存在的。b3在上述计算t中第二道路端点的虚拟高程对应的实施例中,已经计算过一次虚拟高程。但为了保证a1、b2和b3所形成的道路能够平滑过渡。计算机设备可以根据预设坡度、b2的虚拟高程、以及b3与b2之间的连接边长度,重新计算b3的虚拟高程。其中,重新计算可参考如下过程:b2的虚拟高程-b2与b3之间的连接边长度*tan(3
°
)。
316.对于重新计算得到的虚拟高程大和之前计算得到的虚拟高程,计算机设备可将两者中的较大值作为b3的虚拟高程。与此同时,由于对a1、b2和b3所形成的道路进行了平滑过渡处理,也即在处理中a1、b2和b3是作为同一条道路的,从而对于a1与b2间的连接边长度以及b2与b3间的连接边长度,计算机设备可以先对两个连接边长度作和,将b3与a1间的连接边长度从原来的无,更新为和值。
317.上述实施例中,由于可以分不同情形,逐步向外依次计算未分组道路段中表征过渡道路段的端点的虚拟高程,使得未分组道路段中表征过渡道路段的端点均满足平滑过
渡,从而计算过程能够覆盖所有需要平滑过渡处理的道路段,使得计算结果更加全面。
318.上述实施例中主要是列举了两种情形,除了上述两种情形之外,还存在一种情形。由此,在一些实施例中,基于与新增的第一道路端点相连接的第二道路端点所属的集合,以及新增的第一道路端点的虚拟高程,确定与新增的第一道路端点相连接的第二道路端点的虚拟高程和最新的第二集合,还包括:
319.在与新增的第一道路端点相连接的第二道路端点不属于最新的第一集合,且不属于最新的第二集合的情况下,根据预设坡度、新增的第一道路端点的虚拟高程、以及新增的第一道路端点之间的连接边长度,计算与新增的第一道路端点相连接的第二道路端点的虚拟高程;在虚拟高程大于相对应的基准高程的情况下,将与新增的第一道路端点相连接的第二道路端点添加至第二集合;基于新增的第一道路端点与相连接第一道路端点间的连接边长度,以及新增的第一道路端点与相连接的第二道路端点间的连接边长度,更新与第二道路端点对应的连接边长度。
320.为了便于理解,还是结合上述示例进行解释说明。以新增的第一道路端点为b2,与b2相连接的第二道路端点为c3为例,结合图8可知,c3不属于最新的第一集合s,也不属于最新的第二集合t。此时,计算机设备可根据预设坡度、b2的虚拟高程、以及b2与c3之间的连接边长度,计算c3的虚拟高程。其中,计算可参考如下过程:b2的虚拟高程-b2与c3之间的连接边长度*tan(3
°
)。若计算结果大于c3相对应的基准高程,则说明c3是作为平滑过渡的端点而存在的。因此,计算机设备可以将c3添加至第二集合,以作为继续判断与c3相连接的端点是否需要进行平滑过渡处理的基础。
321.与此同时,由于对a1、b2和c3所形成的道路进行了平滑过渡处理,也即在处理中a1、b2和c3是作为同一条道路的,从而对于a1与b2间的连接边长度以及b2与c3间的连接边长度,计算机设备可以先对两个连接边长度作和,将c3与a1间的连接边长度从原来的无,更新为和值。
322.上述实施例中,由于可以分不同情形,依次向外扩散计算未分组道路段中表征过渡道路段的端点的虚拟高程,使得未分组道路段中表征过渡道路段的端点均满足平滑过渡,从而计算过程能够覆盖所有需要平滑过渡处理的道路段,使得计算结果更加全面。
323.通过上述过程,可以确定未分组道路段中过渡道路段的端点的虚拟高程,也即位于组间的端点的虚拟高程。由于位于组间的端点中会存在与多个道路组连接的端点,而这些端点的虚拟高程通常会受到多个道路组的影响,从而仅通过上述过程确定其虚拟高程可能还不够精准,在确定其虚拟高程时需要将多个道路组同时纳入考量。基于该项说明,在一些实施例中,根据用于表征过渡道路段的端点的虚拟高程,确定未分组道路段中过渡道路段的虚拟高程之前,该方法还包括:
324.在用于表征过渡道路段的端点中存在满足预设条件的端点的情况下,将满足预设条件的端点作为目标端点,预设条件包括与至少两个道路组相连接;在与目标端点相连接的所有道路组中任意选取两个道路组,分别作为第一道路组和第二道路组;将第一道路组中与目标端点相连接的端点作为第一端点,将第二道路组中与目标端点相连接的端点作为第二端点;获取第一端点与第二端点之间的目标连接边长度;根据预设坡度、目标连接边长度、第一端点的虚拟高程和第二端点的虚拟高程,计算目标端点的虚拟高程。
325.为了便于理解,以未分组道路段中表征过渡道路段的端点c为例,若存在至少两个
道路组与c相连接,则可将c作为目标端点。若与c连接的道路组包括g1、g2和g3,则此时计算机设备可以任意选取两个道路组,以用于计算目标端点的虚拟高程。
326.以任意选取g1和g2、将g1中与c相连接的端点为a,将g2中与c相连接的端点为b为例,则a可作为第一端点,而b可作为第二端点。接着,计算机设备可以获取a与b之间的目标连接边长度。其中,“目标连接边长度”也同样为连接边长度,具体定义可参考上述名词解释,而“目标”是用于区分后续其它的连接边长度。
327.最后,计算机设备根据预设坡度、目标连接边长度、a的虚拟高程和b的虚拟高程,可以计算c的虚拟高程。具体地,计算机设备可以基于a的虚拟高程与b的虚拟高程确定第一取值区间,再根据预设坡度和目标连接边长度,确定第二取值区间,从第一取值区间与第二取值区间之间的交集区间中选取一个虚拟高程,作为计算得到的虚拟高程。当然,实际实施过程中也可采用其它计算的方式,本技术实施例对此不作具体限定。
328.上述实施例中,对于与多个道路组连接的端点,由于可以基于相连接的多个道路组计算该端点的虚拟高程,从而使得受到多个道路组影响的端点可得到更精准的虚拟高程计算结果。
329.在一些实施例中,根据预设坡度、目标连接边长度、第一端点的虚拟高程和第二端点的虚拟高程,计算目标端点的虚拟高程,包括:根据第一端点的虚拟高程和预设坡度,计算第一底边距离,根据第二端点的虚拟高程和预设坡度,计算第二底边距离;在第一底边距离与第二底边距离之和不小于目标连接边长度的情况下,将第一端点与第二端点之间的道路面分为三个路面区间;判断目标端点所落入的路面区间,基于目标端点所落入的路面区间,计算目标端点的虚拟高程。
330.具体地,以第一端点的虚拟高程为vha,预设坡度为3
°
为例,则可以通过如下过程计算得到第一底边距离:vha/tan(3
°
)。以第二端点的虚拟高程为vhb为例,则可以通过如下过程计算得到第二底边距离:vhb/tan(3
°
)。以目标连接边长度通过lab表示为例,在vha/tan(3
°
) vhb/tan(3
°
)≥lab的情况下,说明a与b之间的距离较远,区间跨度较大,从而可将第一端点与第二端点之间的道路面分为三个路面区间,具体可如图12所示。在图12中,三个路面区间分别对应着距离第一端点和第二端点的远近程度。
331.若确定目标端点落入靠近第一端点的路面区间,也即图12中靠近a的斜坡区间,以目标端点与第一端点a之间的第一连接边长度为la为例,则计算机设备可通过如下过程确定该目标端点的虚拟高程:vha-tan(3
°
)*la。若确定目标端点落入靠近第二端点的路面区间,也即图12中靠近b的斜坡区间,以目标端点与第二端点b之间的第一连接边长度为lb为例,则计算机设备可通过如下过程确定该目标端点的虚拟高程:vhb-tan(3
°
)*lb。若确定目标端点落入位于中间的基准路面区间,则可以确定目标端点所处的路面为基准路面。此时,目标端点的虚拟高程为基准高程。
332.上述实施例中,对于与多个道路组连接的端点,由于基于该端点所落入的路面区间,分情形采用不同的方式计算虚拟高程,从而可使得计算结果贴近现实情况,进而可使得计算结果更加精准。
333.在一些实施例中,判断目标端点所落入的路面区间,包括:根据目标端点与第一端点之间的第一连接边长度,以及预设坡度,计算第一反推虚拟高程;在第一端点的虚拟高程与第一反推虚拟高程之间的第一差值大于目标端点的基准高程的情况下,确定目标端点落
入靠近第一端点的路面区间;根据目标端点与第二端点之间的第二连接边长度,以及预设坡度,计算第二反推虚拟高程;在第二端点的虚拟高程与第二反推虚拟高程之间的第二差值大于目标端点的基准高程的情况下,确定目标端点落入靠近第二端点的路面区间;在第一差值和第二差值均不大于目标端点的基准高程的情况下,确定目标端点落入位于中间的基准路面区间。
334.具体地,以目标端点与第一端点之间的第一连接边长度为la,目标端点与第二端点之间的第二连接边长度为lb,预设坡度为3
°
为例。第一反推虚拟高程可通过如下过程计算得到:tan(3
°
)*la。第二反推虚拟高程可通过如下过程计算得到:tan(3
°
)*lb。结合上述示例,第一端点的虚拟高程与第一反推虚拟高程之间的第一差值可以表示为:vha-tan(3
°
)*la。第二端点的虚拟高程与第二反推虚拟高程之间的第二差值可以表示为:vhb-tan(3
°
)*lb。
335.若vha-tan(3
°
)*la》目标端点的基准高程,也即第一差值大于目标端点的基准高程,则计算机设备可以确定目标端点落入靠近第一端点的路面区间,也即左边斜坡区间。若vhb-tan(3
°
)*lb》目标端点的基准高程,也即第二差值大于目标端点的基准高程,则计算机设备可以确定目标端点落入靠近第二端点的路面区间,也即右边斜坡区间。若上述两种情形均不满足,则计算机设备可以确定目标端点落入位于中间的基准路面区间。另外,该三种情形各自确定虚拟高程的过程,可参考上述实施例的内容。
336.上述实施例中,对于与多个道路组连接的端点,由于基于该端点所落入的路面区间,分情形采用不同的方式计算虚拟高程,从而可使得计算结果贴近现实情况,进而可使得计算结果更加精准。
337.上述过程主要是第一底边距离与第二底边距离之和不小于目标连接边长度的情况下,如何计算目标端点的虚拟高程的过程。实际实施过程中,第一底边距离与第二底边距离之和还可能小于目标连接边长度。由此,在一些实施例中,根据预设坡度、目标连接边长度、第一端点的虚拟高程和第二端点的虚拟高程,计算目标端点的虚拟高程,包括:
338.在第一底边距离与第二底边距离之和小于目标连接边长度的情况下,计算第一端点的虚拟高程与第二端点的虚拟高程之间的差值;对于目标端点与第一端点之间的第一连接边长度、以及目标端点与第二端点之间的第二连接边长度,对第一连接边长度与第二连接边长度进行求和,得到连接边长度和;计算差值与连接边长度和之间的比值,将比值与第一连接边长度进行相乘,得到对应的乘积;将第一端点的虚拟高程与乘积之间的差值,作为目标端点的虚拟高程。
339.结合上述示例,在vha/tan(3
°
) vhb/tan(3
°
)《lab的情况下,计算机设备可以确定第一端点a与第二端点b之间的距离较近,区间跨度较小。此时,可以结合图13所示的路面示意图,计算目标端点的虚拟高程。上述计算过程具体可通过如下公式表示:vha-(vha-vhb)/(la lb)*la。当然,实际实施过程中基于上述提及各项参数,也可使用其它公式进行计算,本技术实施例对此不作具体限定。
340.上述实施例中,由于可以基于第一端点与第二端点之间距离的远近,分情形采用不同的方式计算虚拟高程,从而可使得计算结果贴近现实情况,进而可使得计算结果更加精准。
341.在上述实施例中,给出了未分组道路段中用于表征过渡道路段的端点的虚拟高程
的确定过程。可以理解的是,过渡道路段中除了端点之外,其道路中心线上还存在非端点之外剩下的道路点。因此,还需要进一步确定这些道路点的虚拟高程。由此,在一些实施例中,根据用于表征过渡道路段的端点的虚拟高程,确定未分组道路段中过渡道路段的虚拟高程,包括:对于过渡道路段中除端点之外的任一道路点,计算过渡道路段中两端点间的虚拟高程之间的端点虚拟高程差值;获取过渡道路段的总长度,获取任一道路点与过渡道路段中起始道路点之间的道路长度,起始道路点为两端点中的一个端点;计算端点虚拟高程差值与道路长度之间乘积,并计算乘积与总长度之间的比值,将比值与过渡道路段中起始道路点的虚拟高程之间的和值作为任一道路点的虚拟高程。
342.具体地,以过渡道路段中除端点之外的任一道路点为c,过渡道路段中起始道路点的为a,结束道路点为b,a的虚拟高程为vha,b的虚拟高程为vhb,过渡道路段的总长度为lab,c与a之间的道路长度为lac,c作为待求解的虚拟高程为vhc为例。上述计算过程可通过如下公式进行表示:vhc=vha (vhb-vha)*lac/lab。其中,(vhb-vha)表示端点虚拟高程差值。需要说明的是,本技术实施例提及的总长度同样为道路长度。当然,也可以将总长度与后续的道路长度一起换位连接边长度,本技术实施例对此不作具体限定。
343.上述实施例中,由于可以基于三角形相似原理计算过渡道路段中除端点之外剩下道路点的虚拟高程,且可以同时结合两个端点的虚拟高程进行计算,从而可以提高计算结果的精准性。
344.在图4对应的实施例中提及了合并迭代过程,合并主要是为了避免出现陡坡连接。基于该项说明,在一些实施例中,合并条件包括陡坡连接条件;基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,得到新的道路组之前,方法还包括:在未分组道路段中存在与至少两个道路组中的组内道路段相连接的多连接端点的情况下,计算多连接端点分别与相连接的任意两个道路组间的连接边长度;基于与相连接的任意两个道路组间的连接边长度,确定虚拟高程的预估差值;根据任意两个道路组中各自与多连接端点相连接的端点的虚拟高程,计算虚拟高程的差值绝对值;在差值绝对值大于预估差值的情况下,确定任意两个道路组满足合并条件。
345.具体地,对于任意两个道路组,以其中一个道路组中与多连接端点相连接的端点的虚拟高程为ha1,以另一个道路组中与多连接端点相连接的端点的虚拟高程为ha2,ha1对应的端点与多连接端点之间的连接边长度为l1,ha2对应的端点与多连接端点之间的连接边长度为l2为例。计算机设备先计算ha1与ha2之间的差值绝对值|ha1-ha2|,再根据l1和l2计算得到虚拟高程的预估差值。最后,判断差值绝对值是否大于预估差值。若大于,则确定满足合并条件。否则,则确定不满足合并条件。
346.上述实施例中,由于可以基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,并在合并处理后重新确定道路段的虚拟高程,从而使得原本分为两个道路组中的组内道路段能够保持虚拟高程的一致性,避免该两个道路组之间出现陡坡连接,进而影响三维地图在显示时的视觉呈现。
347.在一些实施例中,基于与相连接的任意两个道路组间的连接边长度,确定虚拟高程的预估差值,包括:对与相连接的任意两个道路组间的连接边长度求和,得到连接边长度和;基于预设坡度和连接边长度和,确定虚拟高程的预估差值。
348.具体地,结合上述示例,以预设坡度为3
°
为例,上述计算过程可参考如下公式:(l1
l2)*tan(3
°
)。上述判断是否满足合并条件,可参考如下公式:|ha1-ha2|》(l1 l2)*tan(3
°
)。
349.上述实施例中,由于可基于连接边长度和,确定虚拟高程的预估差值,并与虚拟高程的差值绝对值共同判断两个道路组之间是否存在陡坡连接,整体过程容易计算且判断过程简易,从而可以提高处理效率。
350.在一些实施例中,由道路段构成的道路至少包括单层高架道路、多层高架道路、平面道路或地下道路中的至少一种道路。
351.上述实施例中,由于虚拟高程的计算可覆盖多种类型的道路段,从而适用场景更加广泛。
352.在上述实施例中,主要是确定道路虚拟高程的过程。而在实际实施过程中,虚拟高程主要是用于地图显示。基于上述需求,在一些实施例中,如图14所示,提供了一种道路显示方法,以该方法应用于计算机设备为例,包括以下步骤:基于目标区域中各道路段构成目标区域中的道路;基于道路中各道路段对应的最终虚拟高程,构建与目标区域对应的目标地图;以空间维度的形式显示目标地图,且目标地图在显示的过程中,具有不同最终虚拟高程的相连接的道路段,以与不同最终虚拟高程相匹配的相对关系进行呈现,相对关系包括道路上下位关系。
353.步骤1402、确定目标区域中的多个道路段,并确定当次迭代对应的各道路组,道路组包括多于一个道路段,其中,初次迭代对应的道路组基于多个道路段进行关联关系划分得到。
354.步骤1404、对于每一道路组中的每一组内道路段,确定各组内道路段的虚拟高程。
355.步骤1406、基于各组内道路段的虚拟高程,对多个道路段中的未分组道路段进行平滑过渡计算,得到未分组道路段的虚拟高程。
356.步骤1408、判断是否满足合并条件。如果满足,则跳转至步骤1410,如果不满足则跳转至步骤1412。
357.步骤1410、基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,得到新的道路组,并基于新的道路组确定下次迭代对应的各道路组。返回至步骤1404继续执行。
358.步骤1412、基于目标区域中各道路段构成目标区域中的道路。
359.具体地,由于道路段的拓扑关系是已知的,从而基于道路段的拓扑关系,对道路段进行拼接,即可构成目标区域中的道路。
360.步骤1414、基于道路中各道路段对应的最终虚拟高程,构建与目标区域对应的目标地图。
361.步骤1416、以空间维度的形式显示目标地图,且目标地图在显示的过程中,具有不同最终虚拟高程的相连接的道路段,以与不同最终虚拟高程相匹配的相对关系进行呈现,相对关系包括道路上下位关系。
362.其中,基于最终虚拟高程的最终显示效果可参考图15。在图15中,示出了通过最终虚拟高程而呈现出的道路上下位关系。当然,相对关系还可以包括上述过程中给提及的拓扑关系、压盖关系、分流和交汇关系等,本技术实施例对此不作具体限定。
363.上述实施例中,由于可基于最终虚拟高程,在目标地图上显示道路段,从而提高目
标地图在显示时的精准性。
364.本技术实施例还提供一种应用场景,该应用场景应用上述的道路的虚拟高程生成方法。具体地,该道路的虚拟高程生成方法在该应用场景的应用如下:
365.对象通过车载设备打开三维地图应用程序,在打开该三维地图应用程序后,由车载设备向计算机设备发送当前所处位置。计算机设备在接到当前所处位置后,根据当前所处位置调出对应的目标区域中的多个道路段,作为对象可能需要的导航道路段。计算机设备确定当次迭代对应的各道路组,确定各组内道路段的虚拟高程。计算机设备基于各组内道路段的虚拟高程,对多个道路段中的未分组道路段进行平滑过渡计算,得到未分组道路段的虚拟高程。计算机设备基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,得到新的道路组,并基于新的道路组确定下次迭代对应的各道路组。返回确定各组内道路段的虚拟高程的步骤继续执行,直至不存在满足合并条件的道路组时停止,得到目标区域中各道路段对应的最终虚拟高程。
366.计算机设备在得到目标区域中各道路段对应的最终虚拟高程后,可将最终虚拟高程返回至车载设备,由车载设备根据最终虚拟高程、目标区域的本地地图以及地图显示素材,在三维地图应用程序中以空间维度的形式显示目标区域对应的目标地图。其中,最终虚拟高程在目标地图中可以通过道路上下位关系进行呈现。
367.本技术实施例还提供一种应用场景,该应用场景应用上述的道路的虚拟高程生成方法。具体地,该道路的虚拟高程生成方法在该应用场景的应用如下:
368.由人工采集不同区域的道路段,并整理成计算机设备可识别的数据上传至计算机设备。计算机设备接收到人工采集的数据后,对于某一目标区域,可以先基于目标区域中的多个道路段,确定当次迭代对应的各道路组。
369.计算机设备确定各组内道路段的虚拟高程,基于各组内道路段的虚拟高程,对多个道路段中的未分组道路段进行平滑过渡计算,得到未分组道路段的虚拟高程。计算机设备基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,得到新的道路组,并基于新的道路组确定下次迭代对应的各道路组。返回确定各组内道路段的虚拟高程的步骤继续执行,直至不存在满足合并条件的道路组时停止,得到目标区域中各道路段对应的最终虚拟高程。
370.计算机设备在得到目标区域中各道路段对应的最终虚拟高程后,可基于最终虚拟高程、目标区域的本地地图以及地图显示素材,生成离线地图包。当接收到车载设备发送目标区域对应的目标地图的获取请求时,可以向车载设备返回该目标地图对应的离线地图包。
371.需要说明的是,上述应用场景为示意性的应用场景,用于帮助理解本技术的方案,并不用于限定本技术的实际应用场景。
372.应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或
者阶段的至少一部分轮流或者交替地执行。
373.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的道路的虚拟高程生成方法的道路的虚拟高程生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个道路的虚拟高程生成装置实施例中的具体限定可以参见上文中对于道路的虚拟高程生成方法的限定,在此不再赘述。
374.在一些实施例中,如图16所示,提供了一种道路的虚拟高程生成装置1600,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:第一确定模块1602、第二确定模块1604、平滑过渡计算模块1606、合并模块1608和第一循环迭代模块1610,其中:
375.第一确定模块1602,用于确定目标区域中的多个道路段,并确定当次迭代对应的各道路组,道路组包括多于一个道路段,其中,初次迭代对应的道路组基于多个道路段进行关联关系划分得到;
376.第二确定模块1604,用于对于每一道路组中的每一组内道路段,确定各组内道路段的虚拟高程;
377.平滑过渡计算模块1606,用于基于各组内道路段的虚拟高程,对多个道路段中的未分组道路段进行平滑过渡计算,得到未分组道路段的虚拟高程;
378.合并模块1608,用于基于各道路段的虚拟高程,对满足合并条件的道路组进行合并处理,得到新的道路组,并基于新的道路组确定下次迭代对应的各道路组;
379.第一循环迭代模块1610,用于返回确定各组内道路段的虚拟高程的步骤继续执行,直至不存在满足合并条件的道路组时停止,得到目标区域中各道路段对应的最终虚拟高程。
380.在一些实施例中,该装置还包括:
381.第三确定模块,用于确定由当前未被划分过的道路段构成的道路段集合;
382.选取模块,用于从道路段集合中选取一个道路段划分为新的道路组;
383.第一删除模块,用于在道路段集合中删除当前选取的道路段;
384.第一获取模块,用于在道路段集合中获取与新的道路组中的道路段存在关联关系的关联道路段;
385.划分模块,用于将关联道路段划分至新的道路组;
386.第二删除模块,用于在道路段集合中删除已被划分过的关联道路段,得到更新的道路段集合;
387.第二循环迭代模块,用于返回从道路段集合中选取一个道路段划分为新的道路组的步骤,并基于更新的道路段集合继续执行,直至满足划分停止条件时停止,得到多个道路组。
388.在一些实施例中,第一获取模块,包括:
389.第一确定单元,用于确定与目标区域对应的平面地图;
390.初次筛选单元,用于对于新的道路组中的任一道路段,基于任一道路段在平面地图上对应的框体,对道路段集合进行初次筛选,得到初次筛选结果;
391.再次筛选单元,用于基于平面地图上各道路段之间的关联关系,对初次筛选结果进行再次筛选,得到与新的道路组中的道路段存在关联关系的关联道路段。
392.在一些实施例中,初次筛选单元,用于确定道路段集合中每一道路段在平面地图上对应的框体;将道路段集合中框体与任一道路段对应的框体之间存在交集的道路段,作为初次筛选结果。
393.在一些实施例中,再次筛选单元,用于确定任一道路段在平面地图上的道路中心线;将初次筛选结果中道路中心线与任一道路段对应的道路中心线之间相交的道路段,作为与任一道路段存在关联关系的关联道路段。
394.在一些实施例中,再次筛选单元,还用于将初次筛选结果中与任一道路段具有相同后继道路段的道路段,作为与任一道路段存在关联关系的关联道路段;将初次筛选结果中与任一道路段具有相同前驱道路段的道路段,作为与任一道路段存在关联关系的关联道路段。
395.在一些实施例中,组内道路段的虚拟高程通过属于组内道路段中的组内道路点的虚拟高程表征;第二确定模块1604,用于对于每一道路组,遍历道路组中各组内道路段的组内道路点,确定海拔高度满足预设条件的目标组内道路点;将目标组内道路点所属的组内道路段的基准高程,作为目标组内道路点的虚拟高程,其中,基准高程基于组内道路段的道路属性确定;基于组内道路段中各组内道路点的海拔高度,以及目标组内道路点的虚拟高程,确定除目标组内道路点之外的组内道路点的虚拟高程。
396.在一些实施例中,平滑过渡计算模块1606,包括:
397.第二确定单元,用于确定与道路组对应的组内道路点集合;
398.第一获取单元,用于获取组内道路点集合中的端点,端点是道路段中位于两端位置的道路点;
399.第三确定单元,用于基于组内道路点集合中的端点与未分组道路段中端点间的连接关系,并采用平滑过渡计算方式,确定未分组道路段中用于表征过渡道路段的端点的虚拟高程;
400.第四确定单元,用于根据用于表征过渡道路段的端点的虚拟高程,确定未分组道路段中过渡道路段的虚拟高程;
401.第五确定单元,用于将未分组道路段中除过渡道路段之外的未分组道路段的虚拟高程,确定为相应未分组道路段所对应的基准高程。
402.在一些实施例中,第二确定单元,包括:
403.第一构建子单元,用于对于任一道路组,基于道路组中各组内道路段的组内道路点构建对应的组内道路点集合;
404.第一确定子单元,用于确定道路组中每一组内道路段分别对应的周边道路段;
405.第二确定子单元,用于对于每一组内道路段,基于组内道路段的端点从相对应的周边道路段中确定出第一垂足点,并将第一垂足点添加至组内道路点集合;
406.添加子单元,用于对于每一周边道路段,在基于周边道路段的端点确定相对应的组内道路段中存在第二垂足点的情况下,将周边道路段的端点添加至组内道路点集合。
407.在一些实施例中,第一确定子单元,用于确定与目标区域对应的平面地图;对于任一道路组中的任一道路段,以任一道路段的端点为中心,在平面地图上构建预设形状区域;确定各道路段分别在平面地图上对应的框体,并将与预设形状区域之间存在交集的框体所对应的道路段作为任一道路段的周边道路段。
408.在一些实施例中,第二确定子单元,用于对于任一组内道路段,确定在组内道路段对应的各周边道路段中,与组内道路段的端点距离最近的最近周边道路点;基于最近周边道路点确定属于周边道路段的多个第一连线;以组内道路段的端点为起点,向属于同一周边道路段的多个第一连线分别作垂线,同一周边道路段为组内道路段的周边道路段;在垂线与第一连线间存在交点的情况下,将交点作为第一垂足点;在垂线与任一第一连线均不存在交点的情况下,以组内道路段的端点为起点分别向多个第一连线在预设方向上的第一延长线作垂线,在垂线与多个第一延迟线上均存在交点的情况下,将最近周边道路点作为第一垂足点。
409.在一些实施例中,第二确定单元,还包括:
410.第三确定子单元,用于对于任一周边道路段,确定在周边道路段对应的组内道路段中,与周边道路段的端点距离最近的最近组内道路点;
411.第四确定子单元,用于基于最近组内道路点确定属于组内道路段的多个第二连线;
412.作图子单元,用于以周边道路段的端点为起点,向相对应的组内道路段的多个第二连线分别作垂线;
413.第五确定子单元,用于在垂线与第二连线间存在交点的情况下,确定组内道路段中存在第二垂足点;
414.第六确定子单元,用于在垂线与任一第二连线均不存在交点的情况下,以周边道路段的端点为起点分别向多个第二连线在预设方向上的第二延长线作垂线,在垂线与多个第二延迟线上均存在交点的情况下,确定组内道路段中存在第二垂足点。
415.在一些实施例中,第二确定单元,还包括:
416.第七确定子单元,用于确定组内道路点集合中海拔高度满足预设条件的目标组内道路点,将目标组内道路点所属的组内道路段的基准高程,作为目标组内道路点的虚拟高程,其中,基准高程基于组内道路段的道路属性确定;
417.第八确定子单元,用于对于添加至组内道路点集合中的属于周边道路段的第一垂足点,基于目标组内道路点的海拔高度和虚拟高程,以及第一垂足点的海拔高度,确定第一垂足点的虚拟高程;
418.第九确定子单元,用于对于添加至组内道路点集合中的周边道路段的端点,基于目标组内道路点的海拔高度和虚拟高程,以及周边道路段的端点的海拔高度,确定周边道路段的端点的虚拟高程。
419.在一些实施例中,第三确定单元,包括:
420.第二构建子单元,用于将组内道路点集合中的端点作为第一道路端点,并基于第一道路端点构建第一集合;
421.第十确定子单元,用于从未分组道路段中,确定与第一道路端点相连接的第二道路端点;
422.第十一确定子单元,用于基于第一道路端点的虚拟高程,确定第二道路端点的虚拟高程,并将虚拟高程不小于相对应的基准高程的第二道路端点添加至第二集合;
423.增加子单元,用于从第二集合中删除最大虚拟高程对应的第二道路端点,将最大虚拟高程对应的第二道路端点更新为第一道路端点,并增加至第一集合;
424.第十二确定子单元,用于在未分组道路段中,确定与新增的第一道路端点相连接的第二道路端点;
425.第十三确定子单元,用于基于与新增的第一道路端点相连接的第二道路端点所属的集合,以及新增的第一道路端点的虚拟高程,确定与新增的第一道路端点相连接的第二道路端点的虚拟高程和最新的第二集合;
426.循环迭代子单元,用于返回将第二集合中对应最大虚拟高程的第二道路端点更新为第一道路端点的步骤并基于最新的第二集合继续执行,直至第二集合为空时停止,得到未分组道路段中表征过渡道路段的端点的虚拟高程。
427.在一些实施例中,第十一确定子单元,用于对于第二集合中的任一第二道路端点,获取与相连接的第一道路端点的虚拟高程、以及与相连接的第一道路端点之间的连接边长度;根据预设坡度、相连接的第一道路端点的虚拟高程、以及连接边长度,计算与任一第二道路端点相对应的候选虚拟高程;从候选虚拟高程中选取最大值,作为第二道路端点的虚拟高程。
428.在一些实施例中,第十三确定子单元,用于在与新增的第一道路端点相连接的第二道路端点属于最新的第一集合的情况下,维持与新增的第一道路端点相连接的第二道路端点的虚拟高程不变;在与新增的第一道路端点相连接的第二道路端点属于最新的第二集合的情况下,根据预设坡度、新增的第一道路端点的虚拟高程、以及与新增的第一道路端点之间的连接边长度,重新计算与新增的第一道路端点相连接的第二道路端点的虚拟高程;将前次计算得到的虚拟高程和重新计算得到的虚拟高程中的较大值,作为与新增的第一道路端点相连接的第二道路端点的虚拟高程;基于新增的第一道路端点与相连接第一道路端点间的连接边长度,以及新增的第一道路端点与相连接的第二道路端点间的连接边长度,更新与第二道路端点对应的连接边长度。
429.在一些实施例中,第十三确定子单元,还用于在与新增的第一道路端点相连接的第二道路端点不属于最新的第一集合,且不属于最新的第二集合的情况下,根据预设坡度、新增的第一道路端点的虚拟高程、以及新增的第一道路端点之间的连接边长度,计算与新增的第一道路端点相连接的第二道路端点的虚拟高程;在虚拟高程大于相对应的基准高程的情况下,将与新增的第一道路端点相连接的第二道路端点添加至第二集合;基于新增的第一道路端点与相连接第一道路端点间的连接边长度,以及新增的第一道路端点与相连接的第二道路端点间的连接边长度,更新与第二道路端点对应的连接边长度。
430.在一些实施例中,平滑过渡计算模块1606,还包括:
431.选取单元,用于在用于表征过渡道路段的端点中存在满足预设条件的端点的情况下,将满足预设条件的端点作为目标端点,预设条件包括与至少两个道路组相连接,在与目标端点相连接的所有道路组中任意选取两个道路组,分别作为第一道路组和第二道路组;
432.第二获取单元,用于将第一道路组中与目标端点相连接的端点作为第一端点,将第二道路组中与目标端点相连接的端点作为第二端点,获取第一端点与第二端点之间的目标连接边长度;
433.计算单元,用于根据预设坡度、目标连接边长度、第一端点的虚拟高程和第二端点的虚拟高程,计算目标端点的虚拟高程。
434.在一些实施例中,计算单元,包括:
435.第一计算子单元,用于根据第一端点的虚拟高程和预设坡度,计算第一底边距离,根据第二端点的虚拟高程和预设坡度,计算第二底边距离;
436.划分子单元,用于在第一底边距离与第二底边距离之和不小于目标连接边长度的情况下,将第一端点与第二端点之间的道路面分为三个路面区间;
437.判断子单元,用于判断目标端点所落入的路面区间;
438.第二计算子单元,用于基于目标端点所落入的路面区间,计算目标端点的虚拟高程。
439.在一些实施例中,判断子单元,用于根据目标端点与第一端点之间的第一连接边长度,以及预设坡度,计算第一反推虚拟高程;在第一端点的虚拟高程与第一反推虚拟高程之间的第一差值大于目标端点的基准高程的情况下,确定目标端点落入靠近第一端点的路面区间;根据目标端点与第二端点之间的第二连接边长度,以及预设坡度,计算第二反推虚拟高程;在第二端点的虚拟高程与第二反推虚拟高程之间的第二差值大于目标端点的基准高程的情况下,确定目标端点落入靠近第二端点的路面区间;在第一差值和第二差值均不大于目标端点的基准高程的情况下,确定目标端点落入位于中间的基准路面区间。
440.在一些实施例中,计算单元,用于在第一底边距离与第二底边距离之和小于目标连接边长度的情况下,计算第一端点的虚拟高程与第二端点的虚拟高程之间的差值;对于目标端点与第一端点之间的第一连接边长度、以及目标端点与第二端点之间的第二连接边长度,对第一连接边长度与第二连接边长度进行求和,得到连接边长度和;计算差值与连接边长度和之间的比值,将比值与第一连接边长度进行相乘,得到对应的乘积;将第一端点的虚拟高程与乘积之间的差值,作为目标端点的虚拟高程。
441.在一些实施例中,第四确定单元,用于对于过渡道路段中除端点之外的任一道路点,计算过渡道路段中两端点间的虚拟高程之间的端点虚拟高程差值;获取过渡道路段的总长度,获取任一道路点与过渡道路段中起始道路点之间的道路长度,起始道路点为两端点中的一个端点;计算端点虚拟高程差值与道路长度之间乘积,并计算乘积与总长度之间的比值,将比值与过渡道路段中起始道路点的虚拟高程之间的和值作为任一道路点的虚拟高程。
442.在一些实施例中,合并条件包括陡坡连接条件;该装置还包括:
443.第二获取模块,用于在未分组道路段中存在与至少两个道路组中的组内道路段相连接的多连接端点的情况下,获取多连接端点分别与相连接的任意两个道路组间的连接边长度;
444.第四确定模块,用于基于与相连接的任意两个道路组间的连接边长度,确定虚拟高程的预估差值;
445.计算模块,用于根据任意两个道路组中各自与多连接端点相连接的端点的虚拟高程,计算虚拟高程的差值绝对值;
446.第五确定模块,用于在差值绝对值大于预估差值的情况下,确定任意两个道路组满足合并条件。
447.在一些实施例中,第四确定模块,用于对与相连接的任意两个道路组间的连接边长度求和,得到连接边长度和;基于预设坡度和连接边长度和,确定虚拟高程的预估差值。
448.在一些实施例中,由道路段构成的道路至少包括单层高架道路、多层高架道路、平
memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
461.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献