路网数据处理方法、装置、计算机设备和存储介质与流程

文档序号:27630292发布日期:2021-11-29 16:02阅读:256来源:国知局
路网数据处理方法、装置、计算机设备和存储介质与流程

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.图1为一个实施例中路网数据处理方法的应用环境图;图2为一个实施例中路网数据处理方法的流程示意图;图3为一个实施例中将各目标顶点进行合并的示意图;图4为一个实施例中将二维路网数据转换为有向图的示意图;图5为一个实施例中基于有向图依次构建上寻网络和下寻网络步骤的流程示意图;图6为一个实施例中构建上寻网络和下寻网络的示意图;图7为一个实施例中检测各路段与建筑物之间的建筑物压盖关系的示意图;图8为一个实施例中顶点的等级的示意图;图9为一个实施例中确定基准点的示意图;图10为一个实施例中高程恢复的处理示意图;图11为一个实施例中异常坡度修正的示意图;图12为一个实施例中平滑处理的示意图;
图13为一个实施例中坡度构建平滑处理和线性平滑处理的示意图;图14为一个实施例中产品侧应用的效果示意图;图15为一个实施例中道路高程值的自动生成的流程示意图;图16为一个实施例中路网数据处理装置的结构框图;图17为一个实施例中计算机设备的内部结构图。
具体实施方式
27.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
28.本技术提供的路网数据处理方法,可以应用于如图1所示的应用环境中。如图1所示,该应用环境包括终端102和服务器104,应用环境可为终端102与服务器104交互的环境。其中,终端102通过网络与服务器104进行通信。服务器104可以获取终端102上传的二维路网数据。进一步的,服务器104基于二维路网数据中各路段的顶点之间的连接关系,将二维路网数据转换为有向图;服务器104基于有向图依次构建上寻网络和下寻网络;上寻网络用于表示当前路段被其它路段压盖的道路压盖关系,下寻网络用于表示当前路段对其它路段压盖的道路压盖关系;服务器104在有向图中检测各路段与建筑物之间的建筑物压盖关系,并基于建筑物压盖关系,对被建筑压盖路段的顶点进行高程处理;服务器104在有向图中查找符合基准点条件的顶点作为基准点,基于以基准点形成的基准面、上寻网络中的道路压盖关系和下寻网络中的道路压盖关系,对未进行高程处理的路段的顶点赋予高程值。服务器104对未进行高程处理的路段的顶点赋予高程值后,服务器104可以将原始二维道路数据恢复为层级关系正确的三维道路数据,生成对应的三维可视化效果展示图,并将原始二维道路数据与三维道路数据进行关联储存,例如可以将三维可视化效果展示图作为原始二维道路数据的关联展示图,后续可有效应用于三维自动化城市构建产线中。此外,服务器104对未进行高程处理的路段的顶点赋予高程值后,服务器也可以将得到的高程数据发送到对应的终端102中,以使得用户可以获取到原始二维道路数据恢复出的层级关系正确的三维道路数据。其中,二维路网数据可以是服务器104从数据库中直接获取的的,也可以是其他设备例如用户终端发送至服务器104的。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备、智能语音交互设备、智能家电、车载终端等,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。可以理解,本技术实施例提供的路网数据处理方法也可以是由终端执行的。服务器104也可以是区块链系统中的服务节点,该区块链系统中的各服务节点之间形成组成点对点(p2p,peer to peer)网络,p2p协议是一个运行在传输控制协议(tcp,transmission control protocol)协议之上的应用层协议。
29.智能交通系统(intelligent traffic system,its)又称智能运输系统(intelligent transportation system),是将先进的科学技术(信息技术、计算机技术、数据通信技术、传感器技术、电子控制技术、自动控制理论、运筹学、人工智能等)有效地综合运用于交通运输、服务控制和车辆制造,加强车辆、道路、使用者三者之间的联系,从而形成一种保障安全、提高效率、改善环境、节约能源的综合运输系统。或者;
智能车路协同系统(intelligent vehicle infrastructure cooperative systems,ivics),简称车路协同系统,是智能交通系统(its)的一个发展方向。车路协同系统是采用先进的无线通信和新一代互联网等技术,全方位实施车车、车路动态实时信息交互,并在全时空动态交通信息采集与融合的基础上开展车辆主动安全控制和道路协同管理,充分实现人车路的有效协同,保证交通安全,提高通行效率,从而形成的安全、高效和环保的道路交通系统。
30.计算机视觉技术(computer vision,cv)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、ocr、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3d技术、虚拟现实、增强现实、同步定位与地图构建、自动驾驶、智慧交通等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
31.随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服、车联网、自动驾驶、智慧交通等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
32.在一个实施例中,如图2所示,提供了一种路网数据处理方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:步骤202,基于二维路网数据中各路段的顶点之间的连接关系,将二维路网数据转换为有向图。
33.其中,二维路网数据是指二维标清路网数据,例如,二维sd路网数据,本技术实施例中的二维路网数据可以是用于车辆导航的、上下行分离的、使用相对压盖关系体现道路层级关系的矢量路网数据。
34.路段是指网络中弧段(arc),例如,有向图中的弧段、上寻网络中的弧段以及下寻网络中的弧段等。link是指道路连接,本实施例中可以特指有向图中的某一条弧段,可以用数学公式表达。
35.顶点是指网络中的顶点(node),例如,有向图中的顶点、上寻网络中的顶点以及下寻网络中的顶点等。
36.有向图是指道路网络即rn,由原始路网数据的空间位置与道路连接间的连接关系,构成的包含顶点与弧段的图网络。
37.具体的,服务器可以获取用户上传的二维路网数据。服务器还可以是接收道路高程数据生成指令,并基于服务器中存储的二维路网数据进行处理。例如,用户可以通过触发操作生成对应的应用于城市级别道路的三维高程数据生成指令,当服务器接收到该三维高程数据生成指令时,服务器可以基于服务器中存储的与该用户标识对应的城市导航路网标清道路数据进行处理,即服务器基于原始城市导航路网数据中存储的矢量路网顶点间的连接关系,将原始路网数据从文件转换为具有连通性的稀疏有向图的过程。其中,在构建有向图的过程中顶点和弧段所携带的属性可以是预先配置好的,且所携带的属性可以包括多种
类型。例如,顶点的属性可以包括顶点类型枚举变量、顶点处是否为红绿灯的枚举变量以及顶点的处理状态和顶点的高程值等。
38.此外,在转换过程中,服务器可以基于预设距离阈值,将空间距离小于预设距离阈值的顶点进行合并处理,即将空间位置完全相同但编号不同的顶点合并为同一个顶点,能够有效避免由于原始路网数据错误而导致的路网不连续、或者存在断头路的现象。
39.举个例子,用户a通过在网页中输入账号密码的方式登录云平台,该云平台可以根据用户标识即用户a,获取到该用户a上传的城市导航路网标清道路数据。同时,用户a还可以在界面展示的多个候选城市导航路网标清道路数据中,选取符合自己需求的某个城市路网标清道路数据,例如a城市路网标清道路数据,则服务器可以响应于用户a的选取操作,服务器基于a城市路网标清道路数据中各路段的顶点之间的连接关系,将原始二维路网数据转换为有向图。
40.步骤204,基于有向图依次构建上寻网络和下寻网络;上寻网络用于表示当前路段被其它路段压盖的道路压盖关系,下寻网络用于表示当前路段对其它路段压盖的道路压盖关系。
41.其中,上寻网络usn是指由道路的相对压盖关系构建的可用于寻找哪些道路位于当前道路上方的图网络,道路网络即有向图中的arc对应上寻网络中的node,相对压盖关系为上寻网络中的arc。
42.下寻网络dsn是指由道路的相对压盖关系构建的可用于寻找哪些道路位于当前道路下方的图网络,道路网络即有向图中的arc对应下寻网络中的node,相对压盖关系为下寻网络中的arc。
43.道路压盖关系是指道路间的相对压盖关系,例如,使用0

1关系表示两条地面投影存在交点的道路的高度关系,0表示位于下方,1表示位于上方。
44.具体的,服务器基于二维路网数据中各路段的顶点之间的连接关系,将二维路网数据转换为有向图之后,服务器可以基于有向图依次构建上寻网络和下寻网络,上寻网络用于表示当前路段被其它路段压盖的道路压盖关系,下寻网络用于表示所述当前路段对其它路段压盖的道路压盖关系。其中,服务器在构建上寻网络usn和下寻网络dsn时,usn与dsn具有完全相同的顶点与弧段,但是弧段的方向指向完全相反。即服务器基于有向图中的弧段之间存在的压盖或者被压盖关系,在上寻网络和下寻网络中构建对应的目标顶点以及与目标顶点相连的弧段。可以理解的是,若有向图中的arc在usn和dsn中作为顶点出现,则说明该arc存在压盖、被压盖关系,若usn和dsn中的顶点存在arc与之相连,则分别表示其在有向图中对应的arc上方被道路压盖、以及其下方压盖其他道路。
45.举个例子,服务器可以基于原始路网数据中的记录的相对压盖关系,假设原始路网数据中存在弧段1(link1)与弧段2(link2)的相对压盖关系时,则服务器可以依据谁在谁的上方,在usn和dsn中添加对应的顶点与该顶点相连的弧段,同时,服务器还可以设置弧段对应的层级压盖数,例如设置层级压盖数为1。
46.步骤206,在有向图中检测各路段与建筑物之间的建筑物压盖关系。
47.其中,建筑物压盖关系是指道路线与建筑面产生空间位置上的压盖关系,即道路与建筑间的空间位置冲突,道路线与建筑面产生空间位置上的相交、包含关系时,服务器可以判定路段与建筑物之间存在建筑物压盖关系。
48.具体的,服务器可以在有向图中检测各路段与建筑物之间的建筑物压盖关系,建筑物压盖关系检测用于探测道路与建筑间的空间位置冲突,一般来说城市道路会有部分位于建筑物下方,因此当道路线与建筑面产生空间位置上的相交、包含关系时,服务器可以判定建筑被道路压盖。由于被建筑压盖的道路首尾顶点未必被建筑压盖,因此压盖关系检测可以划分为不同的子流程:例如,一种情况是在有向图中检测到路段的顶点被建筑压盖;另一种检测到路段的首尾两个顶点都没有被建筑压盖,但是路中间的某一段路被建筑压盖。
49.步骤208,基于建筑物压盖关系,对被建筑压盖路段的顶点进行高程处理。
50.其中,高程处理是指对网络中的顶点赋予高程值的处理步骤。服务器可以对不同类型的顶点赋予不同的高程值,例如,服务器可以对被建筑压盖路段的顶点赋予负高程值。
51.具体的,服务器在有向图中检测各路段与建筑物之间的建筑物压盖关系之后,服务器可以基于建筑物压盖关系,对被建筑压盖路段的顶点进行高程处理。即当道路线与建筑面产生空间位置上的相交、包含关系时,服务器可以判定建筑被道路压盖,此时服务器可以将该路段的顶点的高程值设置为负高程值,并将该路段的顶点的处理状态调整为已处理状态。例如,负高程值可以设置为

1。可以理解的是,本实施例中将被建筑压盖路段的顶点进行高程处理时,包括但不限于将建筑压盖路段的顶点的高程值设置为负高程值,还可以为其他预设的高程值。
52.举个例子,当服务器在有向图中检测到某个路段a的顶点s位于建筑物下方时,服务器可以将位于该建筑物下方的顶点s的高程值调整为负高程值,并将位于该建筑物下方的顶点s的处理状态调整为已处理状态。
53.步骤210,在有向图中查找符合基准点条件的顶点作为基准点,基于以基准点形成的基准面、上寻网络中的道路压盖关系和下寻网络中的道路压盖关系,对未进行高程处理的路段的顶点赋予高程值。
54.其中,基准点条件是指预先设置的确定基准点的条件,例如,基准点条件可以设置为在有向图中处于红绿灯位置处的顶点。
55.基准点是指用于生成基准面的顶点,例如,可以选取基准高度为零的顶点作为基准点。
56.基准面是指以基准点形成的平面,本实例中可以将基准面作为起算面。高程是指地面点到高度起算面的垂直距离。高程值是指赋予顶点对应的绝对高程值。绝对高程值是指该点沿着垂线方向到大地水准面的距离。
57.具体的,服务器基于建筑物压盖关系,对被建筑压盖路段的顶点进行高程处理之后,服务器可以在有向图中查找符合基准点条件的顶点作为基准点,服务器基于以基准点形成的基准面、上寻网络中的道路压盖关系和下寻网络中的道路压盖关系,对未进行高程处理的路段的顶点赋予高程值,由此可以恢复路网数据中每条道路的绝对高度。其中,基准点条件可以为多种类型的基准点条件,只要当服务器检测到符合基准点条件的顶点时,服务器可以将该顶点作为基准点,并设置基准点的高程值为基准高度,处理状态为已处理状态。进一步的,服务器可以基于以基准点形成的基准面、上寻网络中的道路压盖关系和下寻网络中的道路压盖关系,对未进行高程处理的路段的顶点赋予大于基准高度的高程值。
58.上述路网数据处理方法中,基于二维路网数据中各路段的顶点之间的连接关系,将二维路网数据转换为有向图;基于有向图依次构建上寻网络和下寻网络;上寻网络用于
表示当前路段被其它路段压盖的道路压盖关系,下寻网络用于表示当前路段对其它路段压盖的道路压盖关系;在有向图中检测各路段与建筑物之间的建筑物压盖关系,并基于建筑物压盖关系,对被建筑压盖路段的顶点进行高程处理;在有向图中查找符合基准点条件的顶点作为基准点,基于以基准点形成的基准面、上寻网络中的道路压盖关系和下寻网络中的道路压盖关系,对未进行高程处理的路段的顶点赋予高程值。由于在恢复道路绝对高度的同时保证道路的拓扑关系和基础形态正确,能够恢复路网数据中每条道路的绝对高度,从而有效提高了道路高程值的确定效率。
59.在一个实施例中,基于二维路网数据中各路段的顶点之间的连接关系,将二维路网数据转换为有向图的步骤,包括:若各路段的目标顶点之间的空间距离小于预设距离,则将各目标顶点进行合并;根据各路段的顶点之间的连接关系,获取各路段的方向字段;基于方向字段生成包含各路段的通行方向的有向图。
60.其中,预设距离是指预设距离阈值,例如,预先设置距离阈值d
limit
为0。
61.方向字段是指路网中的每个link都会存在一个direction字段,其中direction字段为 1,表示双向通行;direction字段为 2 ,表示由起始点向终止点通行;direction字段为 3 ,表示由终止点向起始点通行。
62.由于为了避免在路网数据中存在断头路的现象,因此在转换过程中,需要保证所有空间距离小于距离阈值d
limit
的点合并为同一个顶点。一般情况下可以预先设置d
limit
为0,即空间位置完全相同且编号不同的顶点被视为同一顶点,服务器执行该步骤用于消除由于原始路网数据错误,而导致的路网不连续与断头路存在的情况。例如,如图3所示,为将各目标顶点进行合并的示意图。图3中n1、n2、n3以及n4表示顶点,link表示道路连接,特指有向图中的某一条路段;图3中左侧为正常情况,右侧为异常情况,即右侧中顶点n2与顶点n3之间的空间距离小于预设距离,则在转换过程中,服务器需要将顶点n2与顶点n3进行合并,合并为一个顶点,如左侧显示的正常转换情况。
63.具体的,服务器可以基于原始midmif路网数据中存储的矢量路网顶点间的连接关系,将原始路网数据从文件转换为具有连通性的稀疏有向图。其中,midmif数据是指将mapinfo数据保存在两个文件中:图形数据保存在.mif文件中,而文本(属性)数据保存在.mid文件中。
64.若各路段的目标顶点之间的空间距离小于预设距离,则服务器将各目标顶点进行合并,即合并为同一个顶点。进一步的,服务器可以根据各路段的顶点之间的连接关系,获取各路段的方向字段,并基于方向字段生成包含各路段的通行方向的有向图。
65.如图4所示,为将二维路网数据转换为有向图的示意图。其中,图4中左侧为路网数据,右侧为转换后的有向图。图4中a、b、c、d、e表示顶点,1、2、3表示direction字段,带箭头的线段表示连接关系。
66.举个例子,如图4所示,服务器可以根据各路段的顶点之间的连接关系,获取ad路段的方向字段为1,direction字段为 1,表示双向通行,则服务器基于方向字段1,生成包含ad路段的双向通行方向的有向图。由此使得,能够避免在路网数据中存在断头路的现象,为后续确定高程值提供准确的有向图。
67.在一个实施例中,如图5所示,基于有向图依次构建上寻网络和下寻网络的步骤,
包括:步骤502,若有向图中的路段之间存在相对压盖关系,则基于相对压盖关系,在初始上寻网络和初始下寻网络中添加顶点,以及与该顶点相连的路段。
68.步骤504,在添加顶点和路段的初始上寻网络和初始下寻网络中,基于路段的权重分别配置层级压盖数,得到上寻网络和下寻网络。
69.其中,初始上寻网络和初始下寻是指还未添加任何信息的空网路。
70.具体的,若有向图中的路段之间存在相对压盖关系,则服务器可以基于相对压盖关系,在初始上寻网络和初始下寻网络中添加顶点,以及与该顶点相连的路段。同时,在添加顶点和路段的初始上寻网络和初始下寻网络中,服务器可以基于路段的权重分别配置层级压盖数,得到上寻网络和下寻网络。其中,上寻网络和下寻网络的网络结构由原始midmif路网数据中的zlevel表决定,zlevel表中存储的是道路的相对压盖关系,即0

n关系,假设两条道路存在上下压盖关系,则上方道路zlevel=1,下方道路zlevel=0。当zlevel表中存在link1与link2的相对压盖关系时,则服务器可以依据谁在谁的上方在初始上寻网络和初始下寻网络中添加顶点以及与该顶点直接相连的路段,并基于路段的权重分别配置层级压盖数,例如,层级压盖数通常设置为1。层级压盖数的意义就是两条道路之间隔了几层,那一般来说不会有很多那种三条道路交在一个顶点上的情况,所以zlevel表中的0

n通常就是0

1。服务器将每条路段的权重设置为层级压盖数就可以通过图网络的最长路径算法,得到从当前路段出发到其上方所有路段的压盖层级数,从而为后续对未进行高程处理的路段的顶点赋予高程值提供了计算依据,可应用于城市级十万以上级别路网数据的运算,有效提高了数据的处理效率。
71.举个例子,如图6所示,为构建上寻网络和下寻网络的示意图。其中,图6中(1)表示zlevel表,zlevel表中的圆圈表示相对压盖关系,zlevel表中的第一个数字表示路段的编号,第二个数字表示高程值,例如,zlevel表中的0:0表示编号为0的路段的高程值为0;4:1表示编号为4的路段的高程值为1。图6中(2)表示构建的下寻网络,下寻网络中的圆圈里有“数字编号”表示对应的路段,例如,表示在zlevel表中编号为1的路段,表示在zlevel表中编号为4的路段。下寻网络中的有向箭头表示路段间的下压关系,例如,

表示编号为1的路段与编号为5的路段之间具有下压关系,即编号为5的路段位于编号为1的路段的下方。图6中(3)表示构建的上寻网络,上寻网络中的圆圈里有“数字编号”表示对应的路段,例如,表示在zlevel表中编号为1的路段,表示在zlevel表中编号为4的路段。上寻网络中的有向箭头表示路段间的上压关系,例如,

表示编号为5的路段与编号为1的路段之间具有上压关系,即编号为1的路段位于编号为5的路段的上方。
72.在一个实施例中,基于建筑物压盖关系,对被建筑压盖路段的顶点进行高程处理的步骤,包括:当有向图中相应路段的顶点位于建筑物下方时,将位于建筑物下方的顶点调整为负高程值;当有向图中相应路段位于建筑物下方时,判断位于建筑物下方的路段的首部顶点或尾部顶点是否满足预设阈值条件;
若满足预设阈值条件,则将首部顶点或尾部顶点调整为负高程值。
73.其中,预设阈值条件是指预设的针对路段的首部顶点或尾部顶点的阈值条件,例如,预设阈值条件可以包括首部顶点或尾部顶点的等级是否满足预设等级。
74.具体的,当道路线与建筑面产生空间位置上的相交、包含关系时,服务器可以判定建筑被道路压盖,此时该道路的高程值应当设为负高程值,例如,设置为

1。如图7所示,为检测各路段与建筑物之间的建筑物压盖关系的示意图。其中,图7中黑色线条表示检测到存在建筑物压盖关系。在图7中由于被建筑压盖的道路首尾顶点未必被建筑压盖,因此建筑物压盖关系检测可以划分为两个子流程:(1)降低明确被建筑压盖的有向图中的顶点;(2)降低满足预设阈值条件的被建筑压盖路段对应的首部顶点或尾部顶点。即当有向图中相应路段的顶点位于建筑物下方时,服务器将位于建筑物下方的顶点调整为负高程值;当有向图中相应路段位于建筑物下方时,服务器判断位于建筑物下方的路段的首部顶点或尾部顶点是否满足预设阈值条件;若首部顶点或尾部顶点满足预设阈值条件,则服务器将首部顶点或尾部顶点调整为负高程值。
75.举个例子,假设用n
i
表示有向图中相应路段的顶点,s(n
i
)表示顶点的处理状态,h(n
i )表示顶点的高程值,则当n
i
位于建筑物下方时,服务器可以将位于该建筑物下方的顶点n
i
的高程值和处理状态设置为h(n
i )=

1、s(n
i
)=1。
76.假设用a
i
表示有向图中相应路段,路段a
i
对应的首部顶点和尾部顶点分别为n
s
和n
e
,则当a
i
位于建筑物下方时,服务器判断a
i
的首尾顶点n
s
和n
e
是否满足预设阈值条件。以首部顶点n
s
为例,若首部顶点n
s
满足预设阈值条件,则服务器将首部顶点的高程值和处理状态设置为h(n
s
)=

1、s(n
s
)=1。由此使得,能够快速有效的检测到被建筑物压盖的顶点或路段,从而为后续对未进行高程处理的路段的顶点赋予高程值提供了计算依据,可应用于城市级十万以上级别路网数据的运算,有效提高了数据的处理效率。
77.在其中一个实施例中,预设阈值条件包括以下至少之一:首部顶点或尾部顶点在有向图的顶点度等于第一预设度值;首部顶点或尾部顶点在有向图的顶点度不等于第一预设度值、但首部顶点或尾部顶点的等级为预设等级;以及首部顶点或尾部顶点在有向图的顶点度不等于第一预设度值、但在上寻网络中的顶点度大于零。
78.其中,顶点度是指顶点的度,顶点的度是指依附于某个顶点的边的数目。本实施例中可以k
i
表示有向图中第i个顶点的度;uk
i
表示usn中第i个顶点的度;dk
i
表示dsn中第i个顶点的度。
79.有向图中的顶点携带的属性信息包括基本属性和附加属性,顶点的基本属性包括顶点的等级,例如顶点的等级可以用n
itype
表示,n
itype
包括枚举变量{

1,0,1},其中,

1表示未调查路段,0表示常规路段,1表示立交桥,当顶点与多个路段相连时,将与该顶点相连的路段中选取路段的最高等级作为该顶点的等级n
itype
。例如,如图8所示,为顶点的等级的示意图。其中,图8中当顶点n与一条未调查道路和一条常规道路相连时,它的等级应当被判定为更高的那一个,同理当一个顶点与未调查道路、常规道路和立交桥道路相连时,该顶点的等级应当被判定为立交桥上的顶点。n
itype
的作用就是判定每个顶点的等级,不同等级的顶点在后续的处理流程中会对应着不同的处理逻辑。
80.顶点的基本属性还可以包括顶点的类型,即顶点是否为红绿灯位置处的顶点,可以用n
itf
表示,n
itf
包括枚举变量{0,1},其中,0表示不为红绿灯位置处的顶点,1表示是红绿灯位置处的顶点。
81.顶点的附加属性包括处理状态和高程值。顶点的处理状态status可以用s(n
i
)表示;顶点的当前高程值h可以用h(n
i
)表示。其中,顶点的处理状态s(n
i
)取值范围为{0,1,2,3,4,5},各个处理状态分别表示:0表示未处理;1表示高度基准;2表示上桥位置;3表示被标记为抬升;4表示被标记为延伸;5表示高程已固定。
82.具体的,假设用a
i
表示有向图中相应路段,路段a
i
对应的首部顶点和尾部顶点分别为n
s
和n
e
,则当a
i
位于建筑物下方时,服务器判断a
i
的首尾顶点n
s
和n
e
是否满足预设阈值条件。若a
i
的首尾顶点n
s
和n
e
满足以下任一预设阈值条件,则服务器可以设置该顶点的高程值和处理状态设置为h(n
i
)=

1、s(n
i
)=1。
83.预设阈值条件包括以下至少之一:首部顶点或尾部顶点在有向图的顶点度等于第一预设度值,以首部顶点n
s
为例,假设用k
s
表示首部顶点n
s
的顶点度,则第一预设度值可以设置为2,即预设阈值条件为k
s
=2;首部顶点或尾部顶点在有向图的顶点度不等于第一预设度值、但首部顶点或尾部顶点的等级为预设等级,以首部顶点n
s
为例,假设用n
itype
表示首部顶点n
s
的等级,则预设阈值条件可以设置为k
s
≠2&n
itype
=

1,表示的含义为:首部顶点n
s
在有向图的顶点度不等于2,且首部顶点n
s
的等级等于

1;以及首部顶点或尾部顶点在有向图的顶点度不等于第一预设度值、但在上寻网络中的顶点度大于零,以首部顶点n
s
为例,假设用uk
s
表示首部顶点n
s
在上寻网络usn中顶点度,则预设阈值条件可以设置为k
s
≠2&uk
s
>0,表示的含义为:首部顶点n
s
在有向图的顶点度不等于2,且首部顶点n
s
在上寻网络中的顶点度大于零。可以理解的是,上述预设阈值条件同样适用于应用于尾部顶点n
e
,若首部顶点n
s
或尾部顶点n
e
满足上述任一预设阈值条件,则服务器将首部顶点n
s
或尾部顶点n
e
的高程值和处理状态设置为h(n
s
)=

1、s(n
s
)=1。由此使得,能够快速有效的检测到被建筑物压盖的顶点或路段,从而为后续对未进行高程处理的路段的顶点赋予高程值提供了计算依据,可应用于城市级十万以上级别路网数据的运算,有效提高了数据的处理效率。
84.在一个实施例中,在有向图中查找符合基准点条件的顶点作为基准点的步骤,包括:在有向图中查找处于红绿灯位置处的顶点,并将查找的顶点作为基准点;在有向图中查找顶点度为第二预设度值、且等级为预设等级所对应的顶点,并将查找的顶点作为基准点。
85.因为绝大多数处于红绿灯位置处的点和辅路断头点的基准高度都是0,因此可以将这些点作为水平面基准,同时与这些点相连的常规顶点的高度同样为0,因此可以选取这两类点作为基准点,并以这两类基准点进行拓展,得到更多的基准点。
86.具体的,由于顶点的基本属性包括顶点的类型,即顶点是否为红绿灯位置处的顶点,可以用n
itf
表示,n
itf
包括枚举变量{0,1},其中,0表示不为红绿灯位置处的顶点,1表示是红绿灯位置处的顶点,则服务器可以在有向图中查找处于红绿灯位置处的顶点,并将查找的处于红绿灯位置处的顶点作为基准点,例如,服务器在有向图中查找到某个顶点的属
性为n
3tf
=1,即表示该顶点3是处于红绿灯位置处的顶点,则服务器可以将该顶点3标记为基准点。
87.同时,服务器也可以在有向图中查找顶点度为第二预设度值、且等级为预设等级所对应的顶点,并将查找的顶点作为基准点,即服务器在有向图中查找辅路断头点,即满足k
i
=1 & n
itype =

1的顶点为辅路断头点,表示的含义为:在有向图中顶点度为1、且顶点的等级为

1的顶点,例如,当服务器在有向图中查找到某个顶点6满足在有向图中顶点度为1、且顶点的等级为

1时,则服务器将该顶点6标记为基准点。进一步的,服务器可以将上述两类点作为初始基准点执行基准点拓展,以确定更多的基准点,例如,如图9所示,为确定基准点的示意图。其中,图9中(1)为初始基准点,即服务器在有向图中查找处于红绿灯位置处的顶点,并将查找的处于红绿灯位置处的顶点作为初始基准点。图9中(2)为已确定的基准点,即服务器可以基于初始基准点执行基准点拓展,以确定更多的基准点。
88.本实施例中,通过初始基准点执行基准点拓展,能够确定更多的基准点,从而可以准确的确定基准面,为后续对未进行高程处理的路段的顶点赋予高程值提供了计算依据,可应用于城市级十万以上级别路网数据的运算,有效提高了数据的处理效率。
89.在其中一个实施例中,进行了高程处理的顶点的处理状态为已处理状态,在有向图中查找符合基准点条件的顶点作为基准点的步骤,包括:在有向图中,从处于未处理状态的基准点中选取一个基准点作为起始点,以起始点开始在有向图中的可通行方向进行顶点扫描,直至扫描到的当前顶点或当前顶点对应的路段满足终止条件时停止扫描,得到可通行方向上的顶点;将可通行方向上的顶点作为基准点。
90.具体的,服务器基于建筑物压盖关系,对被建筑压盖路段的顶点进行高程处理后,并将进行了高程处理的顶点的处理状态调整为已处理状态。例如,当服务器在有向图中检测到某个路段a的顶点s位于建筑物下方时,服务器可以将位于该建筑物下方的顶点s的高程值调整为

1,并将位于该建筑物下方的顶点s的处理状态调整为已处理状态,即将位于该建筑物下方的顶点s的高程值和处理状态设置为h(n
s
)=

1、s(n
s
)=1。
91.进一步的,服务器在有向图中查找符合基准点条件的顶点作为基准点,例如,服务器可以在有向图中查找处于红绿灯位置处的顶点,并将查找的顶点作为基准点;或者,服务器也可以在有向图中查找顶点度为第二预设度值、且等级为预设等级所对应的顶点,并将查找的顶点作为基准点。服务器在查找到基准点之后,服务器在有向图中,从处于未处理状态的基准点中选取一个基准点作为起始点,即服务器将任意一个没有被处理过的基准点作为起始点,以起始点开始在有向图中的可通行方向进行顶点扫描,直至扫描到的当前顶点或当前顶点对应的路段满足终止条件时停止扫描,得到可通行方向上的顶点,并将可通行方向上的顶点作为基准点。其中,终止条件可以为预设的自定义的各种类型的终止条件,例如,终止条件可以设置为扫描时碰到压盖或被压盖的路段就停止扫描。
92.举个例子,本实施例中将有向图中所有处于红绿灯位置处的顶点即n
itf
=1的顶点,以及辅路断头点即k
i
=1 & n
itype =

1的顶点,上述两类点作为初始基准点执行基准点拓展,基准点拓展的基本流程如下:服务器基于dfs(depth

first

search)深度优先搜索算法,从任意一个没有被处理过的基准点base
ni
开始在有向图中的可通行方向进行顶点扫描,即服务器延有向图的可通行方向进行延伸,因为要生成基准面,所以要从基准点开始做dfs扫
描,延rn的可通行方向就相当于沿着可通行的道路走,不能逆向行驶,直至扫描到的当前顶点或当前顶点对应的路段满足终止条件时停止扫描,得到可通行方向上的顶点,并将可通行方向上的顶点作为基准点。可以理解的是,本技术实施例中采用的搜索算法包括但不限于是dfs深度优先搜索算法,还可以其他的图搜索算法,例如,也可以采用bfs(breadth

first

search)广度优先搜索算法,这里不做具体限定。
93.本实施例中,通过初始基准点执行基准点拓展,能够确定更多的基准点,从而可以准确的确定基准面,为后续对未进行高程处理的路段的顶点赋予高程值提供了计算依据,可应用于城市级十万以上级别路网数据的运算,有效提高了数据的处理效率。
94.在其中一个实施例中,该方法还包括:将基准点的处理状态修改为已调整基准高度的状态;已调整基准高度的状态属于所述已处理状态;将基准点的高程值调整为所述基准高度;对未进行高程处理的路段的顶点赋予高程值,包括:对未进行高程处理的路段的顶点赋予大于基准高度的高程值。
95.服务器在有向图中查找符合基准点条件的顶点作为基准点之后,服务器可以将基准点的处理状态修改为已调整基准高度的状态,已调整基准高度的状态属于已处理状态,并将基准点的高程值调整为基准高度。例如,服务器可以将基准点的处理状态修改为s(n
i
)=1,并将基准点的高程值调整为h(n
i
)=0。
96.进一步的,服务器基于以基准点形成的基准面、上寻网络中的道路压盖关系和下寻网络中的道路压盖关系,对未进行高程处理的路段的顶点赋予高程值时,服务器可以对未进行高程处理的路段的顶点赋予大于基准高度的高程值,即服务器可以对未进行高程处理的路段的顶点的高程值进行高程处理,并将高程处理后的顶点的状态修改为被标记为抬升,即s(n
i
)=3。由此使得,使用二维sd地图中携带的相对压盖关系与道路等级、类型等基础属性数据,能够将2d道路数据恢复为层级关系正确的3d道路数据,从而有效提高了路网数据的处理效率。
97.在一个实施例中,终止条件包括以下至少之一:当前顶点在可通行方向无其它路段相连;与当前顶点相连的路段无法从当前顶点沿可通行方向通行;与当前顶点相连的路段的另一端顶点的处理状态为已处理状态;若与当前顶点相连的路段,在上寻网络或下寻网络中存在顶点与相连的路段对应。
98.具体的,服务器基于dfs(depth

first

search)深度优先搜索算法,从任意一个没有被处理过的基准点base
ni
开始在有向图中的可通行方向进行顶点扫描,即服务器延有向图的可通行方向进行延伸,因为要生成基准面,所以要从基准点开始做dfs扫描,延rn的可通行方向就相当于沿着可通行的道路走,不能逆向行驶,直至扫描到的当前顶点或当前顶点对应的路段满足终止条件时停止扫描,得到可通行方向上的顶点,并将所有被dfs扫描到的可通行方向上的顶点作为基准点,服务器可以将基准点的处理状态修改为s(n
i
)=1,并将基准点的高程值调整为h(n
i
)=0。其中,终止条件可以包括以下至少之一:当服务器扫描到当前顶点在可通行方向无其它路段相连,即服务器扫描到除沿可
通行方向进入该顶点的路段之外,该顶点无任何路段与其相连时,则服务器停止扫描;或者服务器扫描到与当前顶点相连的路段无法从当前顶点沿可通行方向通行,即服务器扫描到与顶点相连的路段均无法沿可通行方向通行时,则服务器停止扫描;或者服务器扫描与当前顶点相连的路段的另一端顶点的处理状态为已处理状态,即服务器扫描与顶点相连的路段的终点n
target
对应的处理状态s(n
target )≠0时,则服务器停止扫描;或者若服务器扫描与当前顶点相连的路段,在上寻网络或下寻网络中存在顶点与相连的路段对应,即服务器扫描与顶点相连的路段在上寻网络或下寻网络中存在顶点与之对应,若满足该条件,则服务器停止扫描,并将该路段的终点n
target
对应的处理状态设置为s(n
target )=2。由此使得,当扫描到具有压盖关系的弧段时,能够自动终止扫描,自动生成对应的高程数据,即能够将2d道路数据恢复为层级关系正确的3d道路数据,从而有效提高了路网数据的处理效率。
99.在一个实施例中,基于以基准点形成的基准面、上寻网络中的道路压盖关系和下寻网络中的道路压盖关系,对未进行高程处理的路段的顶点赋予高程值的步骤,包括:在下寻网络中,获取顶点度等于第二预设度值的目标顶点;在有向图中,查询与目标顶点对应的路段的首尾顶点状态;若首尾顶点状态满足预设状态,将满足所述预设状态的首尾顶点对应的路段作为目标路段,在上寻网络中查找与目标路段对应的顶点,以查找的顶点作为起点进行扫描,得到起点到其它顶点之间的最长路径列表;最长路径列表包括至少一条可通行路径;在上寻网络中查询与可通行路径的终点对应的顶点,若查询的顶点表示在有向图中目标路段的上层路段,基于目标路段首尾顶点的最大高度和上层路段首尾顶点的最小高度,赋予上层路段的首尾顶点对应的高程值。
100.具体的,服务器基于基准面以及usn和dsn中存储的相对压盖关系,服务器可以开始执行核心的高程恢复流程。本实施例中的高程恢复算法依赖于dsn中的顶点对应有向图中路段之间的下压关系,如图10所示,为高程恢复的处理示意图。其中,图10中左侧表示道路之间的压盖关系示意图,图10中右侧表示对应的上寻网络和下寻网络中的压盖关系示意图。图10中link表示道路连接,特指有向图中的某一条弧段。
101.举个例子,服务器可以在dsn中取出任意一个dk
i
=0的顶点作为目标顶点dn
select
,dk
i
表示dsn中第i个顶点的度,即第二预设度值可以设置为0。进一步的,服务器查询目标顶点dn
select
在有向图中对应的路段a
select
的首尾顶点状态,假设n
s
为首部顶点,n
e
为尾部顶点,即服务器查询目标顶点dn
select
在有向图中对应的路段a
select
的首部顶点n
s
和尾部顶点n
e
的状态。假设初始化顶点的高程值均为

9999,本实施例中首尾顶点的预设状态可以设置为h(n
s
)≠

9999 || h(n
e
)≠

9999这个状态,若h(n
s
)≠

9999 || h(n
e
)≠

9999,则服务器将路段a
select
作为目标路段,否则继续检测下一个dk
i
=0的顶点。
102.此外,若首尾顶点中存在一个顶点的高程值为未赋值,即若h(n
s
)或h(n
e
) 中有一个顶点的高程值不存在,则服务器将存在高程的顶点的高程值传递给未赋值高程值的顶点,并将首部顶点n
s
和尾部顶点n
e
的处理状态status设置为5,处理状态为5表示高程已固定。
103.进一步的,服务器在usn中查找目标路段a
select
对应的顶点un
select
,并以un
select

为起始点,以起始点开始基于bfs算法在usn中进行扫描,得到un
select
到其余顶点的最长路径列表r,最长路径列表r包括至少一条可通行路径。服务器依次处理最长路径列表r中的所有可通行路径r
i
,r
i
的终点对应usn中的顶点g,该顶点g表示有向图中位于目标路段a
select
上方的上层路段a
overlay
,r
i
的阻抗

h表示目标路段a
select
至上层路段a
overlay
的最大高度差。其中,bfs算法的用途之一就是可以求得一个顶点到其余所有顶点的最短或者最长路径,本实施例中的最长路径的物理意义实质就是计算当前目标路段到其上方的所有路段的最大间接覆盖层数。
104.即服务器在usn中查询与可通行路径r
i
的终点对应的顶点g,若查询的顶点g表示在有向图中目标路段a
select
的上层路段a
overlay
,服务器可以基于目标路段a
select
首尾顶点的最大高度和上层路段a
overlay
首尾顶点的最小高度,赋予上层路段a
overlay
的首尾顶点对应的高程值。服务器基于目标路段a
select
首尾顶点的最大高度和上层路段a
overlay
首尾顶点的最小高度,赋予上层路段a
overlay
的首尾顶点对应的高程值之后,即在高程值设置完毕后,服务器将a
overlay
的首尾顶点两个顶点对应的处理状的status设置为3,处理状态为3表示被标记为抬升。由此使得,能够准确对目标路段的上层路段赋予对应的高程值,在恢复道路绝对高度的同时保证道路的拓扑关系和基础形态正确,从而有效提高了道路高程值的确定效率。
105.在其中一个实施例中,首尾顶点包括首部顶点和尾部顶点,基于目标路段首尾顶点的最大高度和上层路段首尾顶点的最小高度,赋予上层路段的首尾顶点对应的高程值的步骤,包括:将目标路段中首部顶点和尾部顶点的最大高度作为第一高度;将上层路段中首部顶点和尾部顶点最小高度作为第二高度;基于第一高度和第二高度之间的大小关系,对上层路段的首部顶点和尾部顶点分别赋予高程值。
106.具体的,假设a
select
首尾顶点的最大高度为,a
overlay
首尾顶点的最小高度为,则服务器依据和的大小关系,赋予上层路段a
overlay
的首尾顶点对应的高程值,可划分为以下几种情况(按优先级顺序):(1)a
overlay
首尾顶点的处理状态status为5,处理状态为5表示高程已固定,则服务器保持a
overlay
的原始高程值不变;(2)=

9999,即a
overlay
的高程值未知,则服务器将a
overlay
首尾顶点的高程值统一设置为+

h;(3)+

h>,即下方路段a
select
高程值加阻抗大于上方路段a
overlay
当前高程值,则服务器将a
overlay
首尾顶点的高程值统一设置为+

h;(4)+

h<,则服务器保持上方a
overlay
的原始高程值不变。
107.服务器基于和的大小关系,赋予上层路段a
overlay
的首尾顶点对应的高程值之后,即在高程值设置完毕后,服务器将a
overlay
的首尾顶点两个顶点对应的处理状态status设置为3,处理状态为3表示被标记为抬升。由此使得,能够准确对目标路段的上层路段赋予对应的高程值,在恢复道路绝对高度的同时保证道路的拓扑关系和基础形态正确,
从而有效提高了道路高程值的确定效率。
108.在其中一个实施例中,该方法还包括:对目标路段的首尾顶点赋予高程值;目标路段的高程值小于上层路段的高程值;在有向图中,沿目标路段的两个不同方向进行可通行性扫描,得到不同方向上的延伸路段;向与延伸路段的首尾顶点赋予与目标路段相同的高程值。
109.具体的,服务器可以对目标路段的首尾顶点赋予高程值,并在有向图中,沿目标路段a
select
的两个不同方向进行可通行性扫描,得到不同方向上的延伸路段,即服务器沿目标路段a
select
的前后顶点按可通行性进行扫描,向与目标路段a
select
直接或间接相连且h(n
i
)=

9999的顶点传递目标路段a
select
的高程值,即服务器向与延伸路段的首尾顶点赋予与目标路段相同的高程值,直到扫描到uk
i
≠0(uk
i
表示usn中第i个顶点的度)或dk
i
≠0(dk
i
表示dsn中第i个顶点的度)的顶点时,则停止扫描,并将被赋予高程值的顶点的处理状态status设置为4,处理状态为4表示被标记为延伸。本实施例中,进行延伸处理的目的是赋予立交桥内部且不存在压盖关系的道路高程值,由此,在恢复道路绝对高度的同时保证道路的拓扑关系和基础形态正确,从而有效提高了道路高程值的确定效率。
110.在其中一个实施例中,当服务器在dsn中取出任意一个dk
i
=0的顶点作为目标顶点dn
select
,并查询目标顶点dn
select
在有向图中对应的路段a
select
的首尾顶点状态,假设n
s
为首部顶点,n
e
为尾部顶点,即服务器查询目标顶点dn
select
在有向图中对应的路段a
select
的首部顶点n
s
和尾部顶点n
e
的状态。假设初始化顶点的高程值均为

9999,本实施例中首尾顶点的预设状态可以设置为h(n
s
)≠

9999 || h(n
e
)≠

9999这个状态,若h(n
s
)≠

9999 || h(n
e
)≠

9999,则服务器将路段a
select
作为目标路段,当服务器将路段a
select
作为目标路段,并基于目标路段赋予上层路段a
overlay
的首尾顶点对应的高程值、以及服务器向与延伸路段的首尾顶点赋予与目标路段相同的高程值之后,服务器可以在上寻网络中删除该目标路段a
select
对应的顶点,并在下寻网络中删除所有与该目标路段a
select
相连的路段,此时在下寻网络中会生成新的一个顶点的度为0的顶点,即dk
i
=0的顶点,则服务器将该顶点作为下一个处理的目标顶点,即dsn中删除掉具有压盖关系的目标路段之后,自然会产生新的dk
i
=0的顶点,因此需要在处理完毕目标路段后进行删除操作。
111.或者还有另一种情况,服务器在上寻网络中删除该目标路段a
select
对应的顶点,并在下寻网络中删除所有与该目标路段a
select
相连的路段之后,若此时下寻网络中所有顶点均被处理完毕则跳出,否则跳转至破环处理步骤。
112.若服务器检测到dk
i
=0的顶点数量不为0,则服务器重新在dsn中取出任意一个dk
i
=0的顶点作为目标顶点dn
select
进行处理,即服务器检测到dsn中顶点的度为0的顶点的数量不为零,则重新在下寻网络中获取任意一个顶点的度为0的顶点,并将该顶点作为目标顶点进行处理;若服务器检测到dk
i
=0的顶点数量为0且dsn中仍有路段存在,则表明dsn中存在压盖环路,即有向图中的多条路段存在循环压盖,此时需要服务器进行破环处理。
113.破环处理步骤的具体处理流程为:服务器检测dsn中dk
i
最小的顶点dn
min
并执行处理逻辑,即服务器检测下寻网络中顶点的度小于预设阈值的顶点dn
min
,将顶点dn
min
作为目标顶点。进一步的,服务器查找到顶点dn
min
对应目标路段a
select
在有向图中上方与下方的路段压盖点,即路段压盖点可能在目标路段a
select
的左侧或右侧;
进一步的,服务器依据被压盖处低、压盖其它路段处高的处理逻辑,将目标路段a
select
的首尾顶点的高度拉成斜线,且将目标路段a
select
的首尾顶点的处理状态设置为5,处理状态为5表示高程已固定,并在下寻网络中删除与目标路段a
select
相连的路段,实现破环处理,能够自动恢复路网数据中每条道路的绝对高度,在恢复道路绝对高度的同时保证道路的拓扑关系和基础形态正确,从而有效提高了道路高程值的确定效率。
114.在一个实施例中,赋予高程值的顶点包括高架口顶点;对未进行高程处理的路段的顶点赋予高程值之后,该方法还包括降低高架口顶点的高程值的步骤,具体包括:若与高架口顶点相连的所有路段中存在匝道、且其余路段的另一端顶点的高程值为零,则降低高架口顶点的高程值。
115.其中,匝道是指路段的等级为1时对应的路段,本实施例中n
itype
=1表示立交桥(匝道),即服务器可以直接获取到有向图中每条路段的等级以及顶点的等级,当顶点与多个路段相连时,选取路段的最高等级作为该顶点的等级n
itype
。由于在高程恢复过程中的高程抬升逻辑中,即服务器在对未进行高程处理的路段的顶点赋予高程值的过程中,服务器将位于a
select
上方的a
overlay
的首尾端点全部抬升,因此会导致一些坡度位置不准确,因此增加逻辑突变修正处理的步骤是为了对高程恢复结果中虚高的顶点的高程值进行修正处理的过程,其主要功能是探测有向图中具有较高高程值的顶点是否具有下降的空间,可以划分为两个步骤:(1)高架口处顶点的处理;(2)路口处顶点的处理。
116.具体的,若服务器检测到有向图中与高架口顶点相连的所有路段中存在匝道、且其余路段的另一端顶点的高程值为零,则降低该高架口顶点的高程值。例如,服务器检测到有向图中与某个顶点 n
i
相连的所有路段中存在一条属性为匝道(即n
itype
=1)且其余多条路段的终止点高度为0时,则服务器可以将该顶点n
i
的高程值调整为h(n
i
)=min[h(n
nei
)], 其中,h(n
nei
)表示顶点n
i
的周边点的高程值集合。即服务器将该顶点n
i
的高程值调整为周边点中高程值最低的那个顶点的高程值。由此,通过增加逻辑突变修正处理的步骤,对高程恢复结果中虚高的顶点的高程值进行修正处理,使得在高程恢复过程中抬升处理的一些坡度位置不准确的顶点,修正为合适的高程值,从而保证了道路高程值生成的准确性,即不仅有效保证了恢复道路高程的正确性还要保证道路对象的美观。
[0117]
在一个实施例中,赋予高程值的顶点包括路口顶点;对未进行高程处理的路段的顶点赋予高程值之后,该方法还包括调低路口顶点的高程值的步骤,具体包括:沿与路口顶点相连的目标路段进行路段延伸,直至到达另一个路口顶点时停止延伸,记录路口顶点至另一个路口顶点之间的各目标路段;在下寻网络中查找与各目标路段对应的顶点;若查找到与各目标路段对应的顶点,则计算各目标路段对应的顶点的最大高程值;若最大高程值小于赋予路口顶点的高程值,则调低路口顶点的高程值。
[0118]
其中,k
i
表示有向图中第i个顶点的度,路口顶点是指有向图中k
i
>2的顶点。
[0119]
具体的,服务器沿与路口顶点相连的目标路段进行路段延伸,直至到达另一个路口顶点时停止延伸,并记录路口顶点至另一个路口顶点之间的各目标路段。进一步的,服务器可以在下寻网络中查找与各目标路段对应的顶点;若服务器查找到与各目标路段对应的顶点,则服务器计算各目标路段对应的顶点的最大高程值;若最大高程值小于赋予路口顶
点的高程值,则调低路口顶点的高程值。
[0120]
举个例子,服务器沿与路口顶点n
i
相连的某一条路段沿伸至另一个不为n
i
的路口顶点(假设为n
p
),并记录路口顶点n
i
至另一个路口顶点n
p
之间路径r,路径r中包含经过的所有路段序列al,服务器依次查看al中的各路段是否在下寻网络中存在与al中的各路段对应的顶点,若在下寻网络中存在与al中的各路段对应的顶点,则服务器计算各路段的最大高程值。若服务器计算得到的最大高程值小于赋予路口顶点的高程值,即h(n
i )> ,则服务器可以按照下述公式(1)计算n
i
的新的高程值:上述公式(1)一个自定义的高程计算函数,该公式的特性是最少让两层之间的相对高度值大于0.5层,如果坡度计算完成后部分存在压盖关系的道路高度差为0.2、0.3等之类的很小的数值,那么可以通过该函数进行修正处理,使得存在压盖关系的道路之间的高度差不能太近。由此,通过增加逻辑突变修正处理的步骤,对高程恢复结果中虚高的顶点的高程值进行修正处理,使得在高程恢复过程中抬升处理的一些坡度位置不准确的顶点,修正为合适的高程值,从而保证了道路高程值生成的准确性,即不仅有效保证了恢复道路高程的正确性还要保证道路对象的美观。
[0121]
在一个实施例中,对未进行高程处理的路段的顶点赋予高程值之后,该方法还包括对有向图中各路段的首部顶点或尾部顶点进行坡度修正的步骤,具体包括:确定有向图中每条路段的坡度值;按照坡度值从大到小的顺序,基于每层对应的预设高度值和预设最大坡度值,依序确定有向图中的各路段对应的高程调整值;基于高程调整值,对有向图中各路段的首部顶点或尾部顶点进行坡度修正。
[0122]
其中,坡度修正是为了修复部分坡度超过常规道路允许范围的link,如长度为10m的link高程为5m,角度超限。坡度修正需提供一定的输入参数,包括:(1)每层对应的高度值:h
level
;(2)道路link所允许的最大坡度slope
max
。本实施例中,可以预先配置好每层对应的预设高度值和预设最大坡度值。
[0123]
具体的,服务器确定有向图中每条路段的坡度值。例如,服务器可以构建一个逆向的坡度优先队列pq(即坡度由大至小排列),并按照下述按公式(2)依次计算有向图中每条路段的坡度值slope(a
i
),并将每条路段的id与坡度值加入队列pq,例如,编号为5的路段对应的坡度值为2,则标记为slope(a5)=2。
[0124] 上述公式(2)中,slope(a
i
)表示有向图中每条路段的坡度值;atan表示反正切函数;d(n
s
,n
e )表示n
s
与n
e
之间的空间距离;n
s
和n
e
分别表示路段的首部顶点和尾部顶点;h
level
表示每层对应的预设高度值;h(n
s
)表示n
s
的高程值;h(n
e
)表示n
e
的高程值。
[0125]
进一步的,服务器按照坡度值从大到小的顺序,基于每层对应的预设高度值和预设最大坡度值,依序确定有向图中的各路段对应的高程调整值。例如,pq弹出坡度值最大的
路段a
i
,即服务器可以从坡度优先队列pq获取坡度值最大的路段a
i
,并按照下述公式(3)计算路段a
i
的在预设最大坡度slope
max
限制下所允许的最大高度值

h:上述公式(3)中,

h表示各路段对应的高程调整值;tan表示正切函数;d(n
s
,n
e )表示n
s
与n
e
之间的空间距离;n
s
和n
e
分别表示路段的首部顶点和尾部顶点;h
level
表示每层对应的预设高度值;slope
max
表示预设最大坡度值。
[0126]
进一步的,服务器可以基于高程调整值

h,对有向图中各路段的首部顶点或尾部顶点进行坡度修正。由此使得,通过增加坡度修正的处理流程,能够有效修复部分坡度超过常规道路允许范围的道路连接,以及修复部分角度超限的情况,从而保证了道路高程值生成的准确性,即不仅有效保证了恢复道路高程的正确性还要保证道路对象的美观。
[0127]
在其中一个实施例中,基于高程调整值,对有向图中各路段的首部顶点或尾部顶点进行坡度修正的步骤,包括:基于高程调整值,分别确定有向图中各路段的首部顶点和尾部顶点的坡度修正值;确定首部顶点的坡度修正值对应的代价值,得到首部顶点代价值;确定尾部顶点的坡度修正值对应的代价值,得到尾部顶点代价值;选取首部顶点代价值和尾部顶点代价值中的最小代价值;基于最小代价值对应的坡度修正值,对有向图中各路段的首部顶点或尾部顶点进行坡度修正。
[0128]
具体的,服务器可以基于高程调整值,分别确定有向图中各路段的首部顶点和尾部顶点的坡度修正值,例如,服务器可以基于已得到的高程调整值

h,依次计算首部顶点n
s
的坡度修正值为:将h(n
s
)修改为h(n
e
)
‑ꢀ∆
h;尾部顶点n
e
的坡度修正值为:将h(n
e
)修改为h(n
s
)+

h;进一步的,服务器可以按照下述公式(4)确定首部顶点的坡度修正值对应的代价值,得到首部顶点代价值p(n
s
);以及服务器可以按照下述公式(4)确定尾部顶点的坡度修正值对应的代价值,得到尾部顶点代价值p(n
e
),此处假设h(n
s
)< h(n
e
);上述公式(4)中,表示与
푁푖
相连的路段在高程值修改前的坡度;表示与
푁푖
相连的路段在高程值修改后的坡度,flag为惩罚系数,当时,flag设为100,否则flag为1。
[0129]
服务器确定首部顶点代价值p(n
s
)和尾部顶点代价值p(n
e
)之后,服务器可以选取p(n
s
)和p(n
e
)中的最小代价值,并基于最小代价值对应的坡度修正值,对有向图中各路段的首部顶点或尾部顶点进行坡度修正。
[0130]
举个例子,如图11所示,为异常坡度修正的示意图。其中,图11中左侧1、2、3分别表示三个不同坡度值的路段,score表示代价值,pulish score表示目标代价值,h和h’表示高
程调整值。例如,服务器可以基于图11中路段1、2、3构建一个逆向的坡度优先队列pq(即坡度由大至小排列),并按照上述按公式(2)依次计算有向图中每条路段的坡度值slope(a
i
),并将每条路段的id与坡度值加入队列pq。进一步的,服务器按照坡度值从大到小的顺序,按照上述公式(3)依序确定有向图中的各路段对应的高程调整值

h,并按照上述公式(4)确定首部顶点的坡度修正值对应的代价值,得到首部顶点代价值p(n
s
);以及服务器按照上述公式(4)确定尾部顶点的坡度修正值对应的代价值,得到尾部顶点代价值p(n
e
)。假设首部顶点代价值p(n
s
)为图11中的score=0.33,尾部顶点代价值p(n
e
)为图11中的score=0.77,由于score=0.33<score=0.77,即服务器选取两个代价值中的最小代价值,并基于最小代价值(score=0.33)对应的坡度修正值,对有向图中各路段的首部顶点n
s
进行坡度修正。由此,通过增加坡度修正的处理流程,能够有效修复部分坡度超过常规道路允许范围的道路连接,以及修复部分角度超限的情况,从而保证了道路高程值生成的准确性,即不仅有效保证了恢复道路高程的正确性还要保证道路对象的美观。
[0131]
在一个实施例中,对未进行高程处理的路段的顶点赋予高程值之后,该方法还包括对目标道路进行平滑处理的步骤,具体包括:在有向图中,选取顶点度大于第一预设度值的目标顶点作为起始点,以起始点在有向图中查找到目标道路;目标道路为在有向图中连接两个路口顶点的至少两个路段组成的道路;确定目标道路的起始点与终点之间的距离和直线段,以及目标道路中各路段的交点位置;确定各交点位置到直线段的距离,得到距离集;选取距离集中的最大距离;基于最大距离和起始点与终点之间的距离,确定目标道路的曲率半径;基于曲率半径与预设曲率阈值之间的大小关系,对目标道路进行平滑处理。
[0132]
具体的,route是指由多条link构成的一条完整的道路,此处特指有向图中连接两个路口点的道路。有向图中不同类型的route对应不同的内部平滑方式,在有向图中,服务器选取顶点度大于第一预设度值的目标顶点作为起始点,即服务器选取k
i
>2的目标顶点作为起始点,以起始点在有向图中查找到目标道路,即查找找到一条完整的route,进一步的,服务器可以按照下述公式(5)确定route的曲率半径r
r
,公式(5)具体如下:上述公式(5)中,r
r
表示目标道路的曲率半径;l
se
表示目标道路的起始点与终点之间的直线段;p
i
表示目标道路中所包含的形状点位置,即各交点位置;d(n
s
,n
e )表示n
s
与n
e
之间的空间距离;d(p
i
,l
se )表示p
i
到l
se
的距离。
[0133]
进一步的,服务器可以基于目标道路的曲率半径r
r
,判断目标道路是否为曲率较大的道路,可以预先设置曲率阈值为r
limit
,服务器基于目标道路的曲率半径r
r
与预设曲率阈值r
limit
之间的大小关系,对目标道路采用不同的平滑处理方式进行处理,需要注意的是,所有的平滑处理过程中,服务器不改变目标道路起点和终点的高程值。由此,保证了道路高程值生成的准确性,即不仅有效保证了恢复道路高程的正确性还要保证道路对象的美观,呈现出的层级关系虽然不是真实的立交桥高程值,但是呈现出的层级交错效果不会出现显
著错误,从宏观层面具有很强的可视化效果,且全部运算可自动化高效率完成,不需要人工干预,可有效应用于三维自动化城市构建产线中。
[0134]
在一个实施例中,基于曲率半径与预设曲率阈值之间的大小关系,对目标道路进行平滑处理的步骤,包括:对曲率半径与预设曲率阈值进行比对,得到比对结果;若比对结果表示曲率半径小于预设曲率阈值,对目标道路进行坡度构建平滑处理;若比对结果表示曲率半径大于或等于预设曲率阈值,对目标道路进行线性平滑处理。
[0135]
具体的,服务器可以基于目标道路的曲率半径r
r
,判断目标道路是否为曲率较大的道路,假设预先设置的曲率阈值为r
limit
,服务器将目标道路的曲率半径与预设曲率阈值进行比对,得到比对结果,若r
r
<r
limit
,则服务器判定目标道路为类直线道路,则对目标道路进行坡度构建平滑处理;若r
r
≥r
limit
,则判定为曲线道路(匝道),服务器按线性高程插值的方式进行线性平滑处理。
[0136]
其中,坡度构建平滑处理方式为:服务器计算目标道路包含所有路段下方路段压盖点处的最大高程值,坡度平滑按照预设最大坡度值slope
max
的限制在内部路段构建坡度,呈现出高程先抬升再平缓再下降的基础道路形态;若目标道路中所有顶点的高程值均高于,则执行线性平滑处理。
[0137]
例如,如图12所示,为平滑处理的示意图。其中,图12中黑色虚线表示实际情况,黑色实线表示平滑后的效果,图12中link表示道路连接,特指有向图中的某一条弧段。link1表示一条弧段,link2表示另一条弧段,downmaxz表示link1与link2之间的压盖点处最大的高程值为z。
[0138]
如图13所示,为坡度构建平滑处理和线性平滑处理的示意图。图13中黑色虚线表示实际情况,黑色实线表示平滑后的效果。一条link抽象为有向图中的弧段后中间的形状点是不在有向图中表示出来的,因此可以理解为黑色虚线是link,黑色实线是黑色虚线对应的弧段,黑色虚线中的点是形状点,黑色实线中的两个点是端点。在坡度构建平滑的方式中,服务器先按坡度抬升再按坡度下降,如图13中(1)所示。
[0139]
线性平滑处理是指按线性高程插值的方式进行线性平滑处理,即服务器按距离计算目标道路中每个形状点(路段交点)对应的高程值。例如,如图13中(2)所示,线性平滑处理即服务器按距离计算高程值,按距离平滑就是拉成直线,高度值是按距离插值计算得到。如图13中(2)中黑色虚线表示是原始的link,按距离平滑就是拉成直线,线性平滑后得到的效果如图13中(2)的黑色实线所示。由此,保证了道路高程值生成的准确性,即不仅有效保证了恢复道路高程的正确性还要保证道路对象的美观,呈现出的层级关系虽然不是真实的立交桥高程值,但是呈现出的层级交错效果不会出现显著错误,从宏观层面具有很强的可视化效果,且全部运算可自动化高效率完成,不需要人工干预,可有效应用于三维自动化城市构建产线中。
[0140]
在一个实施例中,对未进行高程处理的路段的顶点赋予高程值之后,该方法还包括生成与二维路网数据对应的三维图网络数据的步骤,具体包括:
基于各路段的等级,构建各路段对应的道路面;在道路面中绘制各路段对应的车道线,并根据各路段的顶点高程值和道路面,生成与二维路网数据对应的三维图网络数据;其中,三维图网络数据用于反映道路之间的层级关系。
[0141]
其中,各路段的等级是指各路段对应的道路等级,例如,匝道是指路段的等级为1时对应的路段,本实施例中n
itype
=1表示立交桥(匝道),即服务器可以直接获取到有向图中每条路段的等级以及顶点的等级,当顶点与多个路段相连时,选取路段的最高等级作为该顶点的等级n
itype
。有向图中顶点和路段的等级可以用n
itype
表示,n
itype
包括枚举变量{

1,0,1},其中,

1表示未调查路段,0表示常规路段,1表示立交桥,当顶点与多个路段相连时,将与该顶点相连的路段中选取路段的最高等级作为该顶点的等级n
itype

[0142]
具体的,服务器可以基于各路段的等级,构建各路段对应的道路面,即服务器可以依据各路段的道路等级,构建各路段对应的宽度,以形成各路段对应的道路面,即服务器基于线状道路,构建得到各路段对应的道路面。
[0143]
进一步的,服务器可以在道路面中绘制各路段对应的车道线,并根据各路段的顶点高程值和道路面,生成与二维路网数据对应的三维图网络数据;其中,三维图网络数据用于反映道路之间的层级关系。即服务器可以依据各路段的属性信息,在各路段对应的道路面中绘制各路段对应的车道线,此外,服务器还可以在各路段对应的道路面中绘制各路段对应的其他道路属性,例如,在某些路段对应的道路面中绘制斑马线等道路标识。
[0144]
最后,服务器可以根据各路段的顶点高程值和道路面,生成与二维路网数据对应的三维图网络数据,即服务器基于已得到的各路段顶点对应的高程值,赋予各路段的道路面对应高度,以形成三维可视化的道路数据,即服务器最终生成与原始二维路网数据对应的三维图网络数据。由此使得,通过二维路网数据中存储的道路空间位置信息,以及相对压盖关系、道路等级、红绿灯位置等语义属性,以相对压盖关系计算得到道路的绝对高度值,完成2d路网数据至3d地图的重建工作,有效节约了硬件成本,即能够实现基于已得到的道路的高程数据,自动恢复出层级关系正确的3d道路数据,得到对应的三维地图数据。
[0145]
传统方式中,目前尚无依据原始sd地图数据恢复出携带高程值的三维地图的开源解决方案,但可以依据hd高清地图数据与sd标清地图数据中部分数据融合方式实现主干路的精准高度恢复,依赖于hd地图数据源具有很大的局限性,即目前的传统处理方式中对立交桥等复杂道路对象的建模依赖于存储道路信息高程值的高精地图数据,但是高精地图数据采集周期长、成本高且存在一定的政策风险。而本实施例中,通过使用sd地图中携带的相对压盖关系与道路等级、类型等基础属性数据,将2d道路数据恢复为层级关系正确的3d道路数据,以2d展示3d的形式,有效避免了高精地图数据高程准确性带来的政策性风险,呈现出的层级关系虽然不是真实的立交桥高程值,但是呈现出的层级交错效果不会出现显著错误,从宏观层面具有很强的可视化效果,且全部运算可自动化高效率完成,不需要人工干预,后续可将自动生成的三维可视化地图数据有效应用于三维自动化城市构建产线中。
[0146]
本技术还提供一种应用场景,该应用场景应用上述的路网数据处理方法。具体地,该路网数据处理方法在该应用场景的应用如下:本技术中的路网数据处理方法可应用于城市级别道路的三维高程恢复,而后高程恢复完成的数据可提供于城市级别的道理自动化三维建模。在产品侧,如图14所示,为产品
侧应用的效果示意图。图14中最左侧的图为原始2d sd路网数据不存在高程值,三维可视化状态下呈现出平面状态,在经过上述的路网数据处理方法进行高程恢复后,路网中的所有道路线被赋予了绝对高程值,即三维形态被恢复如图14中间的图,进一步的,采用上述的路网数据处理方法进行高程恢复后的高程数据可直接应用于自动化三维建模流程,构建完成的三维地图模型可见图14中最右侧的三维地图模型图,即本技术实施例提供的方法,可以应用于城市中的道路三维地图自动生成的场景中。由此,在恢复道路绝对高度的同时保证道路的拓扑关系和基础形态正确,与此同时可应用于城市级十万以上级别路网数据的运算,具有很高的处理效率。
[0147]
本技术实施例提供的方法,可以应用于城市中的道路高程值自动生成的场景中。以下以城市中的道路高程值自动生成为例,对本技术实施例提供的路网数据处理方法进行说明,包括以下步骤:目前尚无较为完善且成熟的将二维sd路网数据恢复出三维高程的高程恢复算法,一般来说对存在复杂高度交错的立交桥区域会使用携带高程数据的高精地图数据作为基准,进行自动化建模或手工建模保证模型的精确性。但是,目前直接使用sd路网数据的相对压盖关系无法准确表示出存在多级压盖关系的复杂道路区域,如立交桥、高架桥等。传统的使用携带高程数据的高精地图数据作为基准,进行手工三维建模的方式,由于需要人工处理大量的信息,因而会导致三维地图数据的生成效率较低。而本实施例中提出了一种道路高程值的自动生成方法,通过标清地图中存储的道路空间位置信息,以及相对压盖关系、道路等级、红绿灯位置等语义属性,以相对压盖关系计算道路的绝对高度,完成2d至3d的重建工作,为后续道路三维建模提供数据支撑。
[0148]
如图15所示,为道路高程值的自动生成的流程示意图。由于对道路高程的恢复不仅在于恢复道路高程值的正确性,同时还要保证道路对象的美观,因此,如图15所示,道路高程值的自动生成的处理流程,从整体上可以划分为四个模块:数据加载、高程恢复、高程平滑和数据输出,其中核心步骤为高程恢复和高程平滑。高程恢复阶段又可以划分为5个步骤,分别为:路网拓扑重建、上寻网络构建和下寻网络构建、压盖关系检测、基准面检测与高程抬升;高程平滑阶段又可以划分为5个步骤分别为:突变逻辑修正、异常坡度修正、全局高程平滑、二次突变修正与二次高程平滑。
[0149]
具体的,在高程恢复过程中,为保证路网高程恢复结果中高度的连续性,高程恢复过程中所有的高度值修正全部针对于rn(即有向图)中的node,即所有的顶点n
i
被赋予额外的两个属性:(1)处理状态status用s(n
i
)表示;(2)当前高度值h用h(n
i
)表示。其中s(n
i
)取值范围为{0,1,2,3,4,5},各个状态分别表示:0表示未处理;1表示高度基准;2表示上桥位置;3表示被标记为抬升;4表示被标记为延伸;5表示高程已固定。
[0150]
在技术侧,具体步骤如下:1)基于二维路网数据中各路段的顶点之间的连接关系,将二维路网数据转换为有向图;基于有向图依次构建上寻网络和下寻网络;上寻网络用于表示当前路段被其它路段压盖的道路压盖关系,下寻网络用于表示当前路段对其它路段压盖的道路压盖关系。
[0151]
具体的,服务器可以进行路网拓扑重建。路网拓扑重建是基于原始midmif路网数据中存储的矢量路网顶点间的连接关系,将原始路网数据从文件转换为具有连通性的稀疏有向图的过程。在转换过程中需要保证所有空间距离小于距离阈值d
limit
的点集合需要合并
为同一个顶点,避免出现路网数据中存在断头路的现象。一般情况下d
limit
设置为0,即空间位置完全相同且编号不同的顶点被视为同一顶点,该步骤用于解除原始路网数据错误导致的路网不连续与断头路的情况。此处说明构建有向图过程中顶点所携带的基本属性:(1)n
itype
:顶点的类型枚举变量{

1,0,1},其中

1表示低等级,0表示正常等级,1表示立交桥。当顶点与多个link相连时取link的最高等级作为该顶点的n
itype
;(2)n
itf
:顶点处是否为红绿灯,枚举变量{0,1},其中0表示否,1表示是;(3)初始化s(n
i )=0,h(n
i )=

9999。arc所携带的基本属性较多,此处不进行列举。
[0152]
进一步的,服务器可以进行复杂网络构建,此处的复杂网络构建指usn与dsn的构建,usn与dsn具有完全相同的顶点与弧段,但是弧段的方向指向完全相反。若rn中的arc在usn和dsn中作为node出现,则说明该arc存在压盖、被压盖关系,若usn和dsn中的node存在arc与之相连,则分别表示其在rn中对应的arc上方被道路压盖和其下方压盖别的道路。需要注意的是usn与dsn的网络结构由midmif数据中的zlevel表决定,当zlevel表中存在link1与link2的相对压盖关系时,依据谁在谁的上方在usn和dsn中添加node与和node直接相连的arc,arc的权重设置为层级压盖数,通常为1。
[0153]
2)在有向图中检测各路段与建筑物之间的建筑物压盖关系;基于建筑物压盖关系,对被建筑压盖路段的顶点进行高程处理。
[0154]
本实施例中压盖关系检测用于探测道路与建筑间的空间位置冲突,一般来说城市道路会有部分位于建筑物下方,因此当道路线与建筑面产生空间位置上的相交、包含关系时可以判定建筑被道路压盖,此时该道路的高度应当设为

1。由于被建筑压盖的道路首尾顶点未必被建筑压盖,因此压盖关系检测需要划分为两个子流程:(1)降低明确被建筑压盖的rn中的node;(2)降低符合规则的被建筑压盖arc对应首尾顶点的node。当顶点n
i
位于建筑下方时,设置s(n
i )=1,h(n
i )=

1;当弧段a
i
位于建筑下方时,判断a
i
首尾顶点n
s
、n
e
,以n
s
为例:若满足以下任一条件,设置s(n
s )=1,h(n
s )=

1。
[0155]
k
s
=2;k
s
≠2 & n
itype =

1;k
s
≠2 & uk
s
>0。
[0156]
同样的判断条件应用于n
e

[0157]
3)在有向图中查找符合基准点条件的顶点作为基准点,基于以基准点形成的基准面、上寻网络中的道路压盖关系和下寻网络中的道路压盖关系,对未进行高程处理的路段的顶点赋予高程值。
[0158]
服务器可以进行基准面检测,基准面检测用于初步确定有向图中高度为0的顶点作为基准点,并且服务器可以依据usn和dsn中的信息确定status为2的上桥点。被基准点所包围的区域可以初步确定为有向图中的复杂道路枢纽,如孤立的立交桥、连续的高架、立交联合体等。
[0159]
本实施例中将rn中所有的红绿灯点,即n
itf
=1的点以及辅路断头点,即k
i
=1 & n
itype =

1的顶点,服务器可以基于上述两类点作为初始基准点执行基准点拓展,并将所有基准点的属性设置为h(n
i )=0,s(n
i )=1。
[0160]
其中,基准点拓展的基本流程如下:服务器可以从任意一个没有被处理过的基准点base(n
i )开始在有向图中的可通
行方向进行顶点扫描,即服务器基于dfs深度优先搜索算法,延有向图的可通行方向进行延伸,因为要生成基准面,所以要从基准点开始做dfs扫描,延rn的可通行方向就相当于沿着可通行的道路走,不能逆向行驶,直至扫描到的当前顶点或当前顶点对应的路段满足终止条件时停止扫描。其中,dfs的终止条件如下:顶点无任何除进入该顶点的arc与其相连;与顶点相连的arc均无法沿可通行方向通行;与顶点相连的arc的终点n
target
对应的s(n
target )≠0;与顶点相连的arc在usn和dsn中存在node与之对应,若满足该条件,则停止扫描,并将该arc的终点n
target
属性设置为s(n
target )=2;最后,服务器将所有被dfs扫描到的顶点的状态与高度值设置为h(n
i )=0,s(n
i )=1,即可得到基准面。
[0161]
进一步的,服务器基于基准面与usn和dsn中存储的相对压盖关系,可以开始执行核心的高程恢复流程。高程恢复算法依赖于dsn中的node对应rn中arc的下压关系。基本算法流程如下:服务器可以在dsn中取出任意一个dk
i
=0的node作为目标顶点dn
select
,查看该dn
select
在rn中对应的路段a
select
的首部顶点n
s
和尾部顶点n
e
的状态。若h(n
s
)≠

9999 || h(n
e
)≠

9999,则服务器将路段a
select
作为目标路段,否则继续检测下一个dk
i
=0的顶点。若h(n
s
)或h(n
e
)中有一个高程值不存在,则将存在的高程的node高程值传递给不存在高程值的node,并将n
s
和n
e
的status设置为5;进一步的,服务器可以在usn中找到路段a
select
对应的顶点un
select
,并以un
select
作为起始点,以起始点开始基于bfs算法在usn中进行扫描,得到un
select
到其余顶点的最长路径列表r。服务器依次处理最长路径列表r中的所有可通行路径r
i
,r
i
的终点对应usn中的node代表rn中位于路段a
select
上方的路段a
overlay
,r
i
的阻抗

h对应路段a
select
至路段a
overlay
的最大高度差;假设a
select
首尾顶点的最大高度为,a
overlay
首尾顶点的最小高度为,则服务器依据和的大小关系,赋予上层路段a
overlay
的首尾顶点对应的高程值。服务器基于和的大小关系,赋予上层路段a
overlay
的首尾顶点对应的高程值之后,即在高程值设置完毕后,服务器将a
overlay
的首尾顶点两个顶点对应的处理状态status设置为3,处理状态为3表示被标记为抬升。
[0162]
进一步的,服务器可以在有向图中,沿目标路段a
select
的两个不同方向进行可通行性扫描,得到不同方向上的延伸路段,即服务器沿目标路段a
select
的前后顶点按可通行性进行扫描,向与目标路段a
select
直接或间接相连且h(n
i
)=

9999的顶点传递目标路段a
select
的高程值,即服务器向与延伸路段的首尾顶点赋予与目标路段相同的高程值,直到扫描到uk
i
≠0(uk
i
表示usn中第i个顶点的度)或dk
i
≠0(dk
i
表示dsn中第i个顶点的度)的顶点时,则停止扫描,并将被赋予高程值的顶点的处理状态status设置为4,处理状态为4表示被标记为延伸。
[0163]
进一步的,服务器可以在usn中删除目标路段a
select
对应的顶点,在dsn中删除所有与目标路段a
select
相连的arc,此时dsn会产生新的dk
i
=0的node;若此时dsn中所有node均被
处理则跳出,否则转至下述破环处理步骤;若服务器检测到dk
i
=0的顶点数量不为0,则服务器重新在dsn中取出任意一个dk
i
=0的顶点作为目标顶点dn
select
进行处理;若服务器检测到dk
i
=0的顶点数量为0且dsn中仍有路段存在,则表明dsn中存在压盖环路,即有向图中的多条路段存在循环压盖,此时需要服务器进行破环处理。
[0164]
破环处理的基本处理流程为:服务器检测所有dsn中dk
i
最小的顶点dn
min
并执行处理逻辑;服务器找到顶点dn
min
对应路段a
select
在rn中上方与下方的arc压盖点在路段a
select
的左侧或右侧;进一步的,服务器依据被压盖处低、压盖其它路段处高的处理逻辑,将目标路段a
select
的首尾顶点的高度拉成斜线,且将目标路段a
select
的首尾顶点的处理状态设置为5,处理状态为5表示高程已固定,并在下寻网络中删除与目标路段a
select
相连的路段,实现破环处理,并重新返回在dsn中取出任意一个dk
i
=0的node作为目标顶点dn
select
的处理流程。由此,能够自动恢复路网数据中每条道路的绝对高度,在恢复道路绝对高度的同时保证道路的拓扑关系和基础形态正确,从而有效提高了道路高程值的确定效率。
[0165]
进一步的,服务器还可以进行高程平滑处理流程,高程平滑是在高程恢复的基础上进一步优化高程恢复结果形态的必要操作,其直接使用前述高程恢复过程中已经声明的各类变量以及运算结果。高程平滑的主要流程主要包括三个核心处理逻辑:坡度修正、内部平滑与逻辑突变修正,其中内部平滑需要执行两次。
[0166]
1. 逻辑突变修正。
[0167]
具体的,由于在高程恢复过程中的高程抬升逻辑中将位于a
select
上方的a
overlay
的首尾端点全部抬升,因此会导致一些坡度位置不准确,逻辑突变修正是为了对高程恢复结果中虚高的node进行处理的过程,其主要功能是探测rn中具有较高高程的node是否具有下降的空间,其主要划分为两个步骤:(1)高架口特殊case处理;(2)路口点(k
i
>2)高度下降。
[0168]
高架口特殊处理的逻辑较为简单,具体体现在与rn中的某个node相连的所有arc中存在一条属性为匝道且其余多条arc的终止点高度为0时,则服务器可以将该顶点的高度值设置为h(n
i
)=min[h(n
nei
)],即设置为周边点中高度值最低的那个点的高程;路口点n
i
的高度下降的基本处理逻辑为:服务器可以沿与n
i
相连的某一条arc沿伸至另一个不为n
i
的路口点,记录路径r中经过的所有arc序列al,依次查看al中的所有arc是否在dsn中存在与其对应的node,若存在,则计算下方所有arc的最大高度值。若h(n
i )> ,则服务器可以按照前述公式(1)计算n
i
的新的高程值。
[0169]
2. 坡度修正。
[0170]
坡度修正是为了修复部分坡度超过常规道路允许范围的link,如长度为10m的link高程为5m,角度超限。坡度修正需提供一定的输入参数,包括:(1)每层对应的高度值:h
level
;(2)道路link所允许的最大坡度slope
max
。本实施例中,可以预先配置好每层对应的预设高度值和预设最大坡度值。
[0171]
具体处理流程如下:服务器构建一个逆向坡度优先队列pq(坡度由大至小排列),并按前述公式(2)依
次计算rn中每条arc的坡度值slope(a
i
),并将每条arc的id与坡度值加入pq;pq弹出坡度最大的arc a
i
,服务器按前述公式(3)计算a
i
的长度按最大坡度slope
max
限制下所允许的最大高度值

h;服务器使用

h按前述公式(4)依次计算将h(n
e
)修改为h(n
s
)+
ꢀ∆
h的代价p(n
e
),以及将h(n
s
)修改为h(n
e )
‑ꢀ∆
h的代价p(n
s
),此处假设h(n
s
)< h(n
e
)。进一步的,服务器依据p(n
e
)与p(n
s
),选择代价值相对较小的高度修正方式更改h(n
s
)或h(n
e
),完成对该arc的坡度修复,与此同时更改pq中与被修改node相连arc的坡度值,更新pq并返回步骤重新构建一个逆向坡度优先队列pq。
[0172]
3. 内部平滑。
[0173]
rn中不同类型的route对应不同的内部平滑方式,首先从每个k
i
>2的顶点出发找到一条完整的route,然后按前述公式(5)计算route的曲率半径r
r
,服务器可以基于目标道路的曲率半径r
r
,判断目标道路是否为曲率较大的道路,可以预先设置曲率阈值为r
limit
,服务器基于目标道路的曲率半径r
r
与预设曲率阈值r
limit
之间的大小关系,对目标道路采用不同的平滑处理方式进行处理,需要注意的是,所有的平滑处理过程中,服务器不改变目标道路起点和终点的高程值。
[0174]
此外,目前尚无依据原始sd地图数据恢复出携带高程值的三维地图的开源解决方案,但可以依据hd高清地图数据与sd标清地图数据中部分数据融合方式实现主干路的精准高度恢复,依赖于hd地图数据源具有很大的局限性,即目前的传统处理方式中对立交桥等复杂道路对象的建模依赖于存储道路信息高程值的高精地图数据,但是高精地图数据采集周期长、成本高且存在一定的政策风险。而本实施例中,通过使用sd地图中携带的相对压盖关系与道路等级、类型等基础属性数据,将2d道路数据恢复为层级关系正确的3d道路数据,以2d展示3d的形式,有效避免了高精地图数据高程准确性带来的政策性风险,呈现出的层级关系虽然不是真实的立交桥高程值,但是呈现出的层级交错效果不会出现显著错误,从宏观层面具有很强的可视化效果,且全部运算可自动化高效率完成,不需要人工干预,可将自动生成的三维可视化地图数据有效应用于三维自动化城市构建产线中。
[0175]
应该理解的是,虽然图1

15的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1

15中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0176]
在一个实施例中,如图16所示,提供了一种路网数据处理装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:转换模块1602、构建模块1604、检测模块1606、高程处理模块1608、查找模块1610和高程值确定模块1612,其中:转换模块1602,用于基于二维路网数据中各路段的顶点之间的连接关系,将二维路网数据转换为有向图。
[0177]
构建模块1604,用于基于有向图依次构建上寻网络和下寻网络;上寻网络用于表示当前路段被其它路段压盖的道路压盖关系,下寻网络用于表示当前路段对其它路段压盖的道路压盖关系。
[0178]
检测模块1606,用于在有向图中检测各路段与建筑物之间的建筑物压盖关系。
[0179]
高程处理模块1608,用于基于建筑物压盖关系,对被建筑压盖路段的顶点进行高程处理。
[0180]
查找模块1610,用于在有向图中查找符合基准点条件的顶点作为基准点。
[0181]
高程值确定模块1612,用于基于以基准点形成的基准面、上寻网络中的道路压盖关系和下寻网络中的道路压盖关系,对未进行高程处理的路段的顶点赋予高程值。
[0182]
在一个实施例中,转换模块包括:顶点合并单元,用于若各所述路段的目标顶点之间的空间距离小于预设距离,则将各所述目标顶点进行合并;方向字段获取单元,用于根据各所述路段的顶点之间的连接关系,获取各所述路段的方向字段;有向图生成单元,用于基于所述方向字段生成包含各所述路段的通行方向的有向图。
[0183]
在一个实施例中,构建模块包括:添加单元,用于若所述有向图中的路段之间存在相对压盖关系,则基于所述相对压盖关系,在初始上寻网络和初始下寻网络中添加顶点,以及与所述顶点相连的路段;配置单元,用于在添加顶点和路段的所述初始上寻网络和所述初始下寻网络中,基于所述路段的权重分别配置层级压盖数,得到上寻网络和下寻网络。
[0184]
在一个实施例中,高程处理模块包括:高程值调整单元,用于当所述有向图中相应路段的顶点位于所述建筑物下方时,将位于所述建筑物下方的顶点调整为负高程值;当所述有向图中相应路段位于所述建筑物下方时,判断位于所述建筑物下方的所述路段的首部顶点或尾部顶点是否满足预设阈值条件;若满足所述预设阈值条件,则将所述首部顶点或尾部顶点调整为负高程值。
[0185]
在一个实施例中,查找模块还用于在所述有向图中查找处于红绿灯位置处的顶点,并将查找的所述顶点作为基准点;在所述有向图中查找顶点度为第二预设度值、且等级为预设等级所对应的顶点,并将查找的所述顶点作为基准点。
[0186]
在一个实施例中,查找模块包括:基准点选取单元,用于在所述有向图中,从处于未处理状态的所述基准点中选取一个基准点作为起始点;扫描单元,用于以所述起始点开始在所述有向图中的可通行方向进行顶点扫描,直至扫描到的当前顶点或所述当前顶点对应的路段满足终止条件时停止扫描,得到所述可通行方向上的顶点;将所述可通行方向上的顶点作为基准点。
[0187]
在一个实施例中,所述装置还包括:修改模块,用于将所述基准点的处理状态修改为已调整基准高度的状态;所述已调整基准高度的状态属于所述已处理状态;调整模块,用于将所述基准点的高程值调整为所述基准高度;高程值确定模块还用于对未进行高程处理的所述路段的顶点赋予大于所述基准高度的高程值。
[0188]
在一个实施例中,高程值确定模块包括:目标顶点获取单元,用于在所述下寻网络中,获取顶点度等于第二预设度值的目标顶点;状态查询单元,用于在所述有向图中,查询与所述目标顶点对应的路段的首尾顶点状态;扫描单元,用于若所述首尾顶点状态满足预设状态,将满足所述预设状态的首尾顶点对应的路段作为目标路段,在所述上寻网络中查找与所述目标路段对应的顶点,以查找的所述顶点作为起点进行扫描,得到所述起点到其它顶点之间的最长路径列表;所述最长路径列表包括至少一条可通行路径;高程值赋予单元,用于在所述上寻网络中查询与所述可通行路径的终点对应的顶点,若查询的所述顶点表示在所述有向图中目标路段的上层路段,基于所述目标路段首尾顶点的最大高度和所述
上层路段首尾顶点的最小高度,赋予所述上层路段的首尾顶点对应的高程值。
[0189]
在一个实施例中,高程值确定模块还用于将所述目标路段中首部顶点和尾部顶点的最大高度作为第一高度;将所述上层路段中首部顶点和尾部顶点最小高度作为第二高度;基于所述第一高度和所述第二高度之间的大小关系,对所述上层路段的首部顶点和尾部顶点分别赋予高程值。
[0190]
在一个实施例中,高程值确定模块还用于对所述目标路段的首尾顶点赋予高程值;所述目标路段的高程值小于所述上层路段的高程值;高程值确定模块包括扫描单元,用于在所述有向图中,沿所述目标路段的两个不同方向进行可通行性扫描,得到所述不同方向上的延伸路段;高程值确定模块还用于向与所述延伸路段的首尾顶点赋予与所述目标路段相同的高程值。
[0191]
在一个实施例中,调整模块还用于若与所述高架口顶点相连的所有路段中存在匝道、且其余路段的另一端顶点的高程值为零,则降低所述高架口顶点的高程值。
[0192]
在一个实施例中,调整模块包括:路段延伸单元,用于沿与所述路口顶点相连的目标路段进行路段延伸,直至到达另一个路口顶点时停止延伸,记录所述路口顶点至所述另一个路口顶点之间的各目标路段;顶点查找单元,用于在所述下寻网络中查找与各所述目标路段对应的顶点;高程值计算单元,用于若查找到与各所述目标路段对应的顶点,则计算各所述目标路段对应的顶点的最大高程值;高程值调整单元,用于若所述最大高程值小于赋予所述路口顶点的高程值,则调低所述路口顶点的高程值。
[0193]
在一个实施例中,所述装置还包括:确定模块,用于确定所述有向图中每条路段的坡度值;按照所述坡度值从大到小的顺序,基于每层对应的预设高度值和预设最大坡度值,依序确定所述有向图中的各路段对应的高程调整值;坡度修正模块,用于基于所述高程调整值,对所述有向图中各路段的首部顶点或尾部顶点进行坡度修正。
[0194]
在一个实施例中,坡度修正模块包括:修正值确定单元,用于基于所述高程调整值,分别确定所述有向图中各路段的首部顶点和尾部顶点的坡度修正值;代价值确定单元,用于确定所述首部顶点的坡度修正值对应的代价值,得到首部顶点代价值;确定所述尾部顶点的坡度修正值对应的代价值,得到尾部顶点代价值;选取单元,用于选取所述首部顶点代价值和所述尾部顶点代价值中的最小代价值;修正单元,用于基于所述最小代价值对应的坡度修正值,对所述有向图中各路段的首部顶点或尾部顶点进行坡度修正。
[0195]
在一个实施例中,所述装置还包括:平滑处理模块,用于在所述有向图中,选取顶点度大于所述第一预设度值的目标顶点作为起始点,以所述起始点在所述有向图中查找到目标道路;所述目标道路为在所述有向图中连接两个路口顶点的至少两个路段组成的道路;确定所述目标道路的起始点与终点之间的距离和直线段,以及所述目标道路中各路段的交点位置;确定各所述交点位置到所述直线段的距离,得到距离集;选取所述距离集中的最大距离;基于所述最大距离和所述起始点与所述终点之间的距离,确定所述目标道路的曲率半径;基于所述曲率半径与预设曲率阈值之间的大小关系,对所述目标道路进行平滑处理。
[0196]
在一个实施例中,平滑处理模块包括:比对单元,用于对所述曲率半径与预设曲率阈值进行比对,得到比对结果;坡度构建平滑处理单元,用于若所述比对结果表示所述曲率半径小于所述预设曲率阈值,对所述目标道路进行坡度构建平滑处理;线性平滑处理单元,
用于若所述比对结果表示所述曲率半径大于或等于所述预设曲率阈值,对所述目标道路进行线性平滑处理。
[0197]
在一个实施例中,构建模块还用于基于各所述路段的等级,构建各所述路段对应的道路面;所述装置还包括:绘制模块,用于在所述道路面中绘制各所述路段对应的车道线;生成模块,用于根据各所述路段的顶点高程值和所述道路面,生成与所述二维路网数据对应的三维图网络数据;其中,所述三维图网络数据用于反映道路之间的层级关系。
[0198]
关于路网数据处理装置的具体限定可以参见上文中对于路网数据处理方法的限定,在此不再赘述。上述路网数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0199]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图17所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储路网数据处理数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种路网数据处理方法。
[0200]
本领域技术人员可以理解,图17中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0201]
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0202]
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0203]
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
[0204]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read

only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0205]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例
中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0206]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1