一种高精度地图中道路路面层级关系的推导方法及装置
文献发布时间:2024-04-18 19:52:40
技术领域
本发明涉及地图处理技术领域,具体涉及一种高精度地图中道路路面层级关系的推导方法及装置。
背景技术
高精度地图数据采集后道路数据包含了敏感的地理信息坐标(经度,纬度,海拔)。需要对道路的海拔信息进行脱敏,即不使用采集信息中的具体海拔信息,对道路的高低层级、空间位置进行推导出基本符合现实场景的道路高程层级关系数据。
在进行路面高程层级关系推导过程中,道路面与道路面交错时需要确定路面上下关系让路面没有重叠并保持合适的高度间距。此时基本方法是道路面数据中有高程信息,使用高程信息进行道路面层级的确定,可以定位当前道路面所在的具体空间位置,可以在道路空间构建时提供具体渲染的高度,避免在三维空间中的道路面交错。
但是国测局规定,在面对大众用户时,地理高精度数据需要进行脱敏处理,不能使用对应的高程信息,即不可以使用具体的海拔值。对应的高程关系只有在道路俯视图中有产生道路交错覆盖部分(称之为立体交叉点)的对应层级关系。这个关系只有交错部分的层级关系,不包含当前道路的其他部分道路面与另外的道路产生交错面之间的层级关系。所以没法直接使用数据中标注的层级关系对立交桥等路面高程进行模拟。
发明内容
本发明针对现有技术中存在的技术问题,提供一种高精度地图中道路路面层级关系的推导方法及装置,通过立体交叉点中各道路面的相对层级关系,推导出各道路面在整体区域内绝对层级。
本发明解决上述技术问题的技术方案如下:
第一方面,本发明提供一种高精度地图中道路路面层级关系的推导方法,包括:
遍历目标区域的所有交叉点分组,提取同一分组下的道路面信息;同一立体交叉点所包含的路面块构成一个交叉点分组,所述同一分组下的道路面信息包括该分组所包含的路面块所属道路向量、路面块在道路向量中的区间序号以及路面块在当前分组下的层级信息;
按照道路向量对目标区域内所有交叉点分组的道路面信息重新分组,并根据道路向量所包含的路面块在各分组下的层级信息逐一推导每条道路向量在目标区域内的全局层级信息。
进一步的,所述的按照道路向量对目标区域内所有交叉点分组的道路面信息重新分组,包括:
为每一道路向量构建交叉关系列表,列表中的每一项均用于描述当前道路向量与其他道路向量的交叉关系;其中列表中的任一项,包括层级差、当前道路向量中交叉路面块的序号、目标道路向量中交叉路面块的序号;所述层级差取正值或负值,其中正值表示当前道路向量在目标道路向量的上层,负值表示当前道路向量在目标道路向量的下层。
进一步的,根据道路向量所包含的路面块在各分组下的层级信息逐一推导每条道路向量在目标区域内的全局层级信息,包括:
根据所述层级差,筛选某一道路向量对应的所述交叉关系列表中的项,生成当前道路向量与其他道路向量的映射关系,映射值为层极差;
若两条道路向量的映射关系唯一,则根据所述映射关系确定相关联的道路向量的相对层级;
遍历所有道路向量对应的所述交叉关系列表,将所有道路向量的初始层级设定为1,并根据某一道路向量与其他所有道路向量的相对层级,得到其在目标区域内的全局层级信息。
进一步的,所述的按照道路向量对目标区域内所有交叉点分组的道路面信息重新分组,还包括:
若某一道路向量与另一道路向量的交叉点不止一个,且交叉点中两条道路向量的路面块的层级关系不同,则在构建交叉关系列表时,根据交叉点的不同,生成多个用于描述当前道路向量与其他道路向量的交叉关系的项。
进一步的,根据道路向量所包含的路面块在各分组下的层级信息逐一推导每条道路向量在目标区域内的全局层级信息,还包括:
某一道路向量与另一道路向量的交叉点不止一个,且交叉点中两条道路向量的路面块的层级关系不同时,判断两条道路向量的全局层级信息是否相同,
若相同,则各按照对应的层级关系变动0.5个层级,若不相同,则判断上下关系是否正确;
若上下关系正确则微调高度层极差,若上下关系不正确,按照两个道路面的中间层级进行高度层级调整,在上的层级为(A_Zlevel+B_Zlevel)/2再对应加或者减0.5个层级,使道路面的高度层级交错开。
进一步的,根据道路中路面的高度层级,调整不存在交叉关系的路面的高度层级到正确的位置。
第二方面,本发明提供一种高精度地图中道路路面层级关系的推导装置,包括:
信息提取模块,遍历目标区域的所有交叉点分组,提取同一分组下的道路面信息;同一立体交叉点所包含的路面块构成一个交叉点分组,所述同一分组下的道路面信息包括该分组所包含的路面块所属道路向量、路面块在道路向量中的区间序号以及路面块在当前分组下的层级信息;
分组推导模块,按照道路向量对目标区域内所有交叉点分组的道路面信息重新分组,并根据道路向量所包含的路面块在各分组下的层级信息逐一推导每条道路向量在目标区域内的全局层级信息。
第三方面,本发明提供一种电子设备,包括:
存储器,用于存储计算机软件程序;
处理器,用于读取并执行所述计算机软件程序,进而实现本发明第一方面所述的一种高精度地图中道路路面层级关系的推导方法。
第四方面,本发明提供一种非暂态计算机可读存储介质,所述存储介质中存储有用于实现本发明第一方面所述的一种高精度地图中道路路面层级关系的推导方法的计算机软件程序。
本发明的有益效果是:当前的数据处理方案属于高精度地图数据处理的新方法。之前的地理信息数据在使用过程时,不存在同一场景中的不同的高度层级描述。在拥有该层级处理方法之后,可以在同一场景,较准确得渲染出立交桥以及高架桥的上下穿插层级关系。
附图说明
图1为本发明实施例提供的一种高精度地图中道路路面层级关系的推导方法流程示意图;
图2为本发明实施例提供的一种高精度地图中道路路面层级关系的推导装置结构示意图;
图3为本发明实施例提供的电子设备的实施例示意图;
图4为本发明实施例提供的一种计算机可读存储介质的实施例示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本发明实施例提供一种高精度地图中道路路面层级关系的推导方法,包括:
遍历目标区域的所有交叉点分组,提取同一分组下的道路面信息;同一立体交叉点所包含的路面块构成一个交叉点分组,所述同一分组下的道路面信息包括该分组所包含的路面块所属道路向量、路面块在道路向量中的区间序号以及路面块在当前分组下的层级信息;
按照道路向量对目标区域内所有交叉点分组的道路面信息重新分组,并根据道路向量所包含的路面块在各分组下的层级信息逐一推导每条道路向量在目标区域内的全局层级信息。
具体的,该方法包括以下步骤:
步骤1
使用立体交叉点和交叉点关系数据,根据立体交叉点的分组id,将具有相同分组id的立体交叉点分组。同一组中某一层级的立体交叉点只有一个。形成如同如下数据,立体交叉点α与β是属于同一个分组G:
立体交叉点组G:
[
交叉点α:{层级Layer:1,数据Layer_id:LayerId1,组id:idG},
交叉点β:{层级Layer:2,数据Layer_id:LayerId2,组id:idG}
]。
相关联的立体交叉点关系数据中描述了对应立体交叉点的具体涵盖位置,例如:
立体交叉点关系I:
{立体交叉点数据Layer_id:LayerId1,道路向量road_vector_id:rvid1,道路向量区间序号road_section_seq:serial1}
立体交叉点关系II:
{立体交叉点数据Layer_id:LayerId2,道路向量road_vector_id:rvid2,道路向量区间序号road_section_seq:serial2}
结合立体交叉点组G中点α、β和立体交叉点数据关系I、II,获取到一个组包含的立体交叉点描述的道路向量层级关系列表ListG:
[
{road_vector_id:rvid1,road_section_seq:serial1,Layer:1},
{road_vector_id:rvid2,road_section_seq:serial2,Layer:2}
]
在道路向量rvid1中的第serial1块区间路块的层级是LayerId1,相关联的同一个立体交叉点组中道路向量rvid2中的第serial2块区间路块的层级是LayerId2。此时一个立体交叉点组对应的路块关系就推导完成,结果为一个列表ListG。
重复以上步骤,将所有的立体交叉点和对应的立体交叉关系描述推导获取出来,保存在列表layer_list_by_group中,每一个列表项包含一个列表,每一个列表项保存一个立体交叉点组对应的高度层级关系,形如ListG。
步骤2
轮询layer_list_by_group,将所有的按立体交叉点分组的数据按其中包含的道路向量id(road_vector_id)筛选,若同一个道路向量包含多个关系,那么单独生成关联关系,保存在映射关系图connection_map中,其中映射关系的键key为主道路向量的id值,映射关系的值为一个列表,列表的每一项是一个列表。
步骤3
轮询connection_map,获取每一个道路向量中有立体交叉点的对应路块road_section的高度层级关系。推导并记录同一个分组中包含当前的主道路向量rvid1对其他道路向量rvid2中的道路路块层级关系。层级关系储存为一个映射图road_vector_section_zlevel_map:以主道路向量值rvid1为key值,value值为其他道路向量rvid2与rvid1产生交叉层级关系的映射图rela_map,该rela_map映射图的key值为rvid2,value值是包含了两个道路向量对应的路块关系的列表list_main_rvid_relation,列表中的每一项都为一个小映射关系main_sub_rvid_map,映射关系中每一项形如:
{层级差delta_layer:x,主向量中交叉的路块序号main_section:y,其他道路向量rvid2交叉的路块序号other_section:z}
该映射关系main_sub_rvid_map记录了其他道路向量rvid2中第z块路块对应主道路向量rvid1中第y块路面的层级差为x。一个rela_map的value值中的list_main_rvid_relation会包含多个main_sub_rvid_map,用来表示主道路向量中和其他道路向量中存在的多个道路面交叉重叠的高度层级关系。
输出产物为road_vector_section_zlevel_map关系映射图。
举例说明:其中一个主道路向量A:“2336806382983642383”,副道路向量有3个,与其中的道路向量B:“2336806382873313804”的区间路块交叉关系为:
[{‘Layer’:-1,‘main_sequence’:‘4’,‘other_section’:‘2’}]
表示了道路向量B的第2块路面在道路向量A的第4块路面的下方。
步骤4
对步骤3中获取的道路向量关系图road_vector_section_zlevel_map进行筛选,获取两个向量对应的层级关系的差值'Layer'字段。例如获取到的其中一个道路向量关系列表:
从中获取道路向量存在的关系{A_B:‘-1’}。(其中数值-1是道路向量B对应道路向量A的层级关系的差值,两个向量值之间使用‘_’连接)。
使用上面的关系推导出map映射关系,映射的键key=“rvidA_rvidB”,映射的值是一个集合(set),保存对应的两个道路向量rvidA和rvidB所有产生了立体层级关系的值。如果层级关系相同且存在,就不添加进集合。不同就添加进集合。集合中的值可以取值正负值均可。正值表示rvidB向量在rvidA向量上层,负值表示rvidB在rvidA下层,0值不使用。这个映射关系称之为道路向量层级关系映射road_vector_relation_map。
步骤5
根据步骤4中获取的所有道路向量映射关系road_vector_relation_map,开始逐一推导每条向量对应的具体空间层级。
首先将road_vector_relation_map中按道路向量重新分组。相关联的道路向量分到一组中处理,这一步骤的目的是优化算法,减少后期进行循环检查的运算时间。分组的依据就是将在一个高架区域中,产生了对应的层级关系的道路向量按同一个组处理,分组关系保存在映射图rv_relations_group_map中。在这个高架区域中,每一条道路向量对应的空间高度层级对其他道路向量都是有关联性影响的,以此为依据分组。
接着按组处理数据,每个分组中的道路向量在road_vector_relation_map中找到对应的层级关系集合,如果集合中关系层级的数量不止一个,那么该关系需要添加进异常集合exception_map待处理。两条道路向量的层级关系不止一种时,不能单独的抬高或者降低整体高度层级来处理问题。当集合中关系层级只有一个时,表示两条道路向量的关系就是简单的上下层关系。在分组内进行循环推导,每一条道路向量的初始高度层级均从层级1开始,根据road_vector_relation_map中的单个层级关系进行对应抬升层级。每一次分组内道路向量层级产生层级变动修改,标注需要再次进行当前分组内循环推导,直到遍历组内全部层级关系发现没有高度层级变动时,结束循环。
推导后的道路向量层级关系对应保存在road_vector_zlevel_map中,该映射图保存的键值对中,键key是道路向量的id,值value是道路向量对应的高度层级。
步骤6
根据步骤5推导的road_vector_zlevel_map道路向量对应的关系映射图,以及步骤5推导的以道路向量编号值为对应键的关系映射图road_vector_section_zlevel_map来确定需要进行抬升的道路块,将road_vector_zlevel_map中获取的道路向量层级赋值给有对应层级关系的道路面。
步骤7
在步骤5中导出筛选了异常的路面关系exception_map。其中包含异常关系的路面在步骤6中使用非异常推导的路面高度层级赋值。路面异常关系为对应的两个道路向量路面有交叉的层级关系。例如道路向量A和B,其中道路向量A的第2块路面在道路向量B的第3块道路面下方,但是道路向量A的第9块道路面又在向量B的第10块路面的上方。这样的情况,首先判断A,B的高度层级是否相同,如果相同,那么对(A2,B3)与(A9,B10)路块的高度层级的处理方法是各按照对应的层级关系变动0.5个层级,这样在道路面交叉位置,道路的高度层级差仍然有1个层级的差。如果A,B道路的层级不相同,根据当前的道路向量层级如果上下关系正确,期间的高度层级差不足,需要微调高度层级差。上下关系不正确时,按照两个道路面的中间层级进行高度层级调整,在上的层级为(A_Zlevel+B_Zlevel)/2再对应加或者减0.5个层级,使道路面的高度层级交错开。
步骤8
在调整完0.5层级之后,需要使用坡度将微调后的路面和调整之前的整数层级路面连接起来。按照国家公路标准,坡度不超过10%,所以半层级高度4米的坡度长度要大于40米。调整半层级后,需要根据道路中路面的高度层级,调整不存在交叉关系的路面的高度层级到正确的位置。
例如道路A,中有5块路面,其中A1A3A5高度层级为2,那么A2A4道路面需要抬起到高度层级2来衔接到一条平整的路面中。
经过以上步骤即可确定道路数据中的对应道路面的高度层级。
如图2所示,本发明实施例提供一种高精度地图中道路路面层级关系的推导装置,包括:
信息提取模块,遍历目标区域的所有交叉点分组,提取同一分组下的道路面信息;同一立体交叉点所包含的路面块构成一个交叉点分组,所述同一分组下的道路面信息包括该分组所包含的路面块所属道路向量、路面块在道路向量中的区间序号以及路面块在当前分组下的层级信息;
分组推导模块,按照道路向量对目标区域内所有交叉点分组的道路面信息重新分组,并根据道路向量所包含的路面块在各分组下的层级信息逐一推导每条道路向量在目标区域内的全局层级信息。
请参阅图3,图3为本发明实施例提供的电子设备的实施例示意图。如图3所示,本发明实施例提了一种电子设备500,包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序511,处理器520执行计算机程序511时实现以下步骤:
遍历目标区域的所有交叉点分组,提取同一分组下的道路面信息;同一立体交叉点所包含的路面块构成一个交叉点分组,所述同一分组下的道路面信息包括该分组所包含的路面块所属道路向量、路面块在道路向量中的区间序号以及路面块在当前分组下的层级信息;
按照道路向量对目标区域内所有交叉点分组的道路面信息重新分组,并根据道路向量所包含的路面块在各分组下的层级信息逐一推导每条道路向量在目标区域内的全局层级信息。
请参阅图4,图4为本发明实施例提供的一种计算机可读存储介质的实施例示意图。如图4所示,本实施例提供了一种计算机可读存储介质600,其上存储有计算机程序611,该计算机程序611被处理器执行时实现如下步骤:
遍历目标区域的所有交叉点分组,提取同一分组下的道路面信息;同一立体交叉点所包含的路面块构成一个交叉点分组,所述同一分组下的道路面信息包括该分组所包含的路面块所属道路向量、路面块在道路向量中的区间序号以及路面块在当前分组下的层级信息;
按照道路向量对目标区域内所有交叉点分组的道路面信息重新分组,并根据道路向量所包含的路面块在各分组下的层级信息逐一推导每条道路向量在目标区域内的全局层级信息。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
- 一种自动驾驶用高精度地图数据网格化的管理方法及装置
- 基于道路面层级关系推导高架路段虚拟高程的方法及系统
- 基于道路线层级关系推导坡道道路线高程的方法及系统