CN116704148A - 地图中道路纵向层次数据处理方法及装置 - Google Patents

地图中道路纵向层次数据处理方法及装置 Download PDF

Info

Publication number
CN116704148A
CN116704148A CN202310996438.9A CN202310996438A CN116704148A CN 116704148 A CN116704148 A CN 116704148A CN 202310996438 A CN202310996438 A CN 202310996438A CN 116704148 A CN116704148 A CN 116704148A
Authority
CN
China
Prior art keywords
node
constraint
gland
closed loop
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310996438.9A
Other languages
English (en)
Other versions
CN116704148B (zh
Inventor
肖童星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310996438.9A priority Critical patent/CN116704148B/zh
Publication of CN116704148A publication Critical patent/CN116704148A/zh
Application granted granted Critical
Publication of CN116704148B publication Critical patent/CN116704148B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A30/00Adapting or protecting infrastructure or their operation
    • Y02A30/60Planning or developing urban green infrastructure

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Remote Sensing (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Instructional Devices (AREA)

Abstract

本申请实施例提供了一种地图中道路纵向层次数据处理方法及装置,涉及地图技术领域,该方法包括:基于目标地图数据获取各道路上的控制点以及各道路对应的约束,并以各控制点为节点,以各约束为边,构建对应的节点约束图;获取每一待验证压盖约束在节点约束图中对应的下方节点经其他节点到对应的上方节点的最短路径;基于每一待验证压盖约束对应的最短路径,获取待验证压盖约束对应的闭合回路;基于每一待验证压盖约束对应的闭合回路中的各约束,确定闭合回路中一个或多个压盖约束对应的纵向层次数据是否存在错误。该方案无需采用人工,且无需依赖过多的相关数据,提高了纵向层次数据检查的效率,降低了纵向层次数据检查的成本。

Description

地图中道路纵向层次数据处理方法及装置
技术领域
本申请涉及地图技术领域,具体而言,本申请涉及一种地图中道路纵向层次数据处理方法及装置。
背景技术
在SD(Standard Definition,标准定义地图)地图中,一般用z-level(纵向层次数据)表示道路的高低关系。然而由于数据制作工艺和成本的限制,地图原始数据中z-level存在一定概率的错误问题,按照错误的z-level计算的道路高程会与现实不一致,甚至是道路叠在一起,严重影响渲染效果,因此需要对z-level进行检查,确定z-level是否存在错误。
目前,采用人工检查的方式对z-level进行检查,具体来说可以通过高精数据中的绝对高程、定位产生的轨迹信息或卫星照片等相关信息对z-level进行检查和纠正。但是上述方式在面对海量地图数据时,存在效率低和成本高的问题。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,本申请实施例所提供的技术方案如下:
第一方面,本申请实施例提供了一种地图中道路纵向层次数据处理方法,包括:
基于目标地图数据获取各道路上的控制点以及各道路对应的约束,并以各控制点为节点,以各约束为边,构建对应的节点约束图,各道路上的控制点包括道路位于压盖区的点、道路的起始点和终止点,所述约束包括压盖约束、坡度约束和邻接约束,所述压盖约束用于约束对应的压盖区的上方控制点和下方控制点之间的高度降,所述坡度约束用于约束道路上任意相邻的两个控制点之间的坡度,所述邻接约束用于约束相连的两条道路的连接点的高度降,各道路对应的约束包括至少一个压盖约束;
获取每一待验证压盖约束在节点约束图中对应的下方节点经其他节点到对应的上方节点的最短路径;
基于每一待验证压盖约束对应的最短路径,获取待验证压盖约束对应的闭合回路,闭合回路包含有最短路径对应的各控制点所对应的约束;
基于每一待验证压盖约束对应的闭合回路中的各约束,确定闭合回路中一个或多个压盖约束对应的纵向层次数据是否存在错误。
在本申请的一种可选实施例中,获取每一待验证压盖约束在节点约束图中对应的下方节点经其他节点到对应的上方节点的最短路径,包括:
从下方节点开始对节点约束图中的各节点进行遍历操作,直至遍历到下方节点;
按遍历顺序连接各遍历过的节点,得到最短路径;
其中,遍历操作包括:
基于索引堆获取与下方节点距离最小的节点作为当前遍历节点,索引堆中存储有不同节点与下方节点之间的距离;
遍历节点约束图中包含当前遍历节点的当前边,获取各当前边中除当前遍历节点的另一节点;
基于每一当前边的长度更新当前边对应的另一节点在索引堆中的距离和当前边对应的另一节点的在先节点。
在本申请的一种可选实施例中,遍历操作还包括:
将当前遍历节点加入标记节点集。
在本申请的一种可选实施例中,当前边为包含当前遍历节点的边中除特定边以外的边,特定边包括待验证压盖约束对应的边,以及另一节点在标记节点集中的边。
在本申请的一种可选实施例中,基于每一当前边的长度更新当前边对应的另一节点在索引堆中的距离和当前边对应的另一节点的在先节点,包括:
若索引堆中包含了另一节点与下方节点之间的距离,且若距离大于当前遍历节点在索引堆中的距离与当前边的长度之和,则将另一节点在索引堆中的距离更新为当前遍历节点在索引堆中的距离与当前边的长度之和,并将另一节点的在先节点更新为当前遍历节点;
若索引堆中不包含另一节点与下方节点之间的距离,则将当前遍历节点在索引堆中的距离与当前边的长度之和,作为另一节点在索引堆中的距离,并将另一节点的在先节点更新为下方节点。
在本申请的一种可选实施例中,最短路径中每一节点携带有节点的在先节点的标识信息,在先节点为在最短路径的前进方向上与节点相邻的前一节点;
基于每一待验证压盖约束对应的最短路径,获取待验证压盖约束对应的闭合回路,包括:
基于每一待验证压盖约束对应的最短路径中各节点携带的在先节点的标识信息,获取压盖约束对应的闭合回路。
在本申请的一种可选实施例中,基于每一待验证压盖约束对应的最短路径中各节点携带的在先节点的标识信息,获取压盖约束对应的闭合回路,包括:
基于各节点所携带的在先节点的标识信息,从上方节点开始对最短路径中的各节点进行回溯操作,直至回溯到下方节点;
基于回溯操作得到的各约束以及待验证压盖约束,得到闭合回路;
其中,回溯操作包括:
基于当前回溯节点携带的在先节点的标识信息,获取当前回溯节点的在先节点;
基于节点约束图获取当前回溯节点与在先节点之间的边对应的约束。
在本申请的一种可选实施例中,回溯操作还包括:
若当前回溯节点与在先节点之间的边对应的约束为压盖约束,且压盖约束的上方节点为在先节点,则确定压盖约束的方向与闭合回路一致;
若当前回溯节点与在先节点之间的边对应的约束为压盖约束,且压盖约束的上方节点为当前回溯节点,则确定压盖约束的方向与闭合回路不一致;
若当前回溯节点与在先节点之间的边对应的约束不为压盖约束,则确定约束的方向与闭合回路一致或不一致。
在本申请的一种可选实施例中,基于每一待验证压盖约束对应的闭合回路中的各约束,确定闭合回路中一个或多个压盖约束对应的纵向层次数据是否存在错误,包括:
若每一待验证压盖约束对应的闭合回路中各约束不满足预设条件,则确定闭合回路中一个或多个压盖约束对应的纵向层次数据存在错误,预设条件用于指示闭合回路中任一压盖约束的高度降不小于第一预设高度,任一坡度约束的坡度的绝对值不大于预设坡度,任一邻接约束的高度降为第二预设高度。
在本申请的一种可选实施例中,通过如下方式确定任一待验证压盖约束对应的闭合回路中各约束是否满足预设条件:
构建闭合回路对应的优化模型,优化模型的目标函数为闭合回路中各压盖约束的高度降与各坡度约束的高度降之和为零,优化模型的约束条件包括:闭合回路中任一压盖约束的高度降不小于预设高度,以及任一坡度约束的坡度的绝对值不大于预设坡度;
若优化模型有解,则确定任一待验证压盖约束对应的闭合回路中各约束满足预设条件,若优化模型无解,则确定任一待验证压盖约束对应的闭合回路中各约束不满足预设条件。
在本申请的一种可选实施例中,压盖约束用于约束对应的压盖区的上方控制点和下方控制点之间的高度降,坡度约束用于约束道路上任意相邻的两个控制点之间的坡度,邻接约束用于约束相连的两条道路的连接点的高度降。
第二方面,本申请实施例提供了一种一种地图中道路纵向层次数据处理装置,包括:
节点约束图获取模块,用于基于目标地图数据获取各道路上的控制点以及各道路对应的约束,并以各控制点为节点,以各约束为边,构建对应的节点约束图,各道路上的控制点包括道路位于压盖区的点、道路的起始点和终止点,所述约束包括压盖约束、坡度约束和邻接约束,所述压盖约束用于约束对应的压盖区的上方控制点和下方控制点之间的高度降,所述坡度约束用于约束道路上任意相邻的两个控制点之间的坡度,所述邻接约束用于约束相连的两条道路的连接点的高度降,各道路对应的约束包括至少一个压盖约束;
最短路径获取模块,用于获取每一待验证压盖约束在节点约束图中对应的下方节点经其他节点到对应的上方节点的最短路径;
闭合回路获取模块,用于基于每一待验证压盖约束对应的最短路径,获取待验证压盖约束对应的闭合回路,闭合回路包含有最短路径对应的各控制点所对应的约束;
纵向层次数据处理模块,用于基于每一待验证压盖约束对应的闭合回路中的各约束,确定闭合回路中一个或多个压盖约束对应的纵向层次数据是否存在错误。
在本申请的一种可选实施例中,最短路径获取模块具体用于:
从下方节点开始对节点约束图中的各节点进行遍历操作,直至遍历到下方节点;
按遍历顺序连接各遍历过的节点,得到最短路径;
其中,遍历操作包括:
基于索引堆获取与下方节点距离最小的节点作为当前遍历节点,索引堆中存储有不同节点与下方节点之间的距离;
遍历节点约束图中包含当前遍历节点的当前边,获取各当前边中除当前遍历节点的另一节点;
基于每一当前边的长度更新当前边对应的另一节点在索引堆中的距离和当前边对应的另一节点的在先节点。
在本申请的一种可选实施例中,最短路径获取模块进一步用于:
将当前遍历节点加入标记节点集。
在本申请的一种可选实施例中,当前边为包含当前遍历节点的边中除特定边以外的边,特定边包括待验证压盖约束对应的边,以及另一节点在标记节点集中的边。
在本申请的一种可选实施例中,最短路径获取模块进一步用于:
若索引堆中包含了另一节点与下方节点之间的距离,且若距离大于当前遍历节点在索引堆中的距离与当前边的长度之和,则将另一节点在索引堆中的距离更新为当前遍历节点在索引堆中的距离与当前边的长度之和,并将另一节点的在先节点更新为当前遍历节点;
若索引堆中不包含另一节点与下方节点之间的距离,则将当前遍历节点在索引堆中的距离与当前边的长度之和,作为另一节点在索引堆中的距离,并将另一节点的在先节点更新为下方节点。
在本申请的一种可选实施例中,最短路径中每一节点携带有节点的在先节点的标识信息,在先节点为在最短路径的前进方向上与节点相邻的前一节点;
闭合回路获取模块具体用于:
基于每一待验证压盖约束对应的最短路径中各节点携带的在先节点的标识信息,获取压盖约束对应的闭合回路。
在本申请的一种可选实施例中,基于每一待验证压盖约束对应的最短路径中各节点携带的在先节点的标识信息,获取压盖约束对应的闭合回路,包括:
基于各节点所携带的在先节点的标识信息,从上方节点开始对最短路径中的各节点进行回溯操作,直至回溯到下方节点;
基于回溯操作得到的各约束以及待验证压盖约束,得到闭合回路;
其中,回溯操作包括:
基于当前回溯节点携带的在先节点的标识信息,获取当前回溯节点的在先节点;
基于节点约束图获取当前回溯节点与在先节点之间的边对应的约束。
在本申请的一种可选实施例中,闭合回路获取模块进一步用于:
若当前回溯节点与在先节点之间的边对应的约束为压盖约束,且压盖约束的上方节点为在先节点,则确定压盖约束的方向与闭合回路一致;
若当前回溯节点与在先节点之间的边对应的约束为压盖约束,且压盖约束的上方节点为当前回溯节点,则确定压盖约束的方向与闭合回路不一致;
若当前回溯节点与在先节点之间的边对应的约束不为压盖约束,则确定约束的方向与闭合回路一致或不一致。
在本申请的一种可选实施例中,纵向层次数据处理模块具体用于:
若每一待验证压盖约束对应的闭合回路中各约束不满足预设条件,则确定闭合回路中一个或多个压盖约束对应的纵向层次数据存在错误,预设条件用于指示闭合回路中任一压盖约束的高度降不小于第一预设高度,任一坡度约束的坡度的绝对值不大于预设坡度,任一邻接约束的高度降为第二预设高度。
在本申请的一种可选实施例中,纵向层次数据处理模块进一步用于:
构建闭合回路对应的优化模型,优化模型的目标函数为闭合回路中各压盖约束的高度降与各坡度约束的高度降之和为零,优化模型的约束条件包括:闭合回路中任一压盖约束的高度降不小于预设高度,以及任一坡度约束的坡度的绝对值不大于预设坡度;
若优化模型有解,则确定任一待验证压盖约束对应的闭合回路中各约束满足预设条件,若优化模型无解,则确定任一待验证压盖约束对应的闭合回路中各约束不满足预设条件。
在本申请的一种可选实施例中,压盖约束用于约束对应的压盖区的上方控制点和下方控制点之间的高度降,坡度约束用于约束道路上任意相邻的两个控制点之间的坡度,邻接约束用于约束相连的两条道路的连接点的高度降。
第三方面,本申请实施例提供了一种电子设备,包括存储器和处理器;
存储器中存储有计算机程序;
处理器,用于执行计算机程序以实现第一方面实施例或第一方面任一可选实施例中所提供的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现第一方面实施例或第一方面任一可选实施例中所提供的方法。
第五方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现第一方面实施例或第一方面任一可选实施例中所提供的方法。
本申请实施例提供的技术方案带来的有益效果是:
在获取到目标地图数据后,构建地图中的控制点,并根据各控制点的位置关系确定出对应的压盖约束、坡度约束以及邻接约束。然后,以各控制点为节点,以各约束为边,构建对应的图论模型。对每一压盖约束进行检查时,获取该压盖约束在图论模型中从下方节点经其他节点到上方节点的最短路径。再然后,基于获取的最短路径获取每一压盖约束对应的包含各约束的闭合回路。最后,利用每一待验证压盖约束对应的闭合回路中的各约束,来确定闭合回路中压盖约束对应的纵向层次数据是否存在错误。该方案无需采用人工,且无需依赖过多的相关数据,提高了纵向层次数据检查的效率,降低了纵向层次数据检查的成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种地图中道路纵向层次数据处理方法的流程示意图;
图2为本申请实施例的一个示例中两条道路压盖的示意图;
图3为本申请实施例的一个示例中检查z-level是否存在错误的整体流程示意图;
图4为本申请实施例的一个示例中最短路径获取的流程示意图;
图5为本申请实施例的一个示例中遍历操作的流程示意图;
图6为本申请实施例的一个示例中更新索引堆中节点的距离的流程示意图;
图7为本申请实施例的一个示例中闭合回路获取的流程示意图;
图8为本申请实施例的一个示例中回溯操作的流程示意图;
图9为本申请实施例提供的一种地图中道路纵向层次数据处理装置的结构框;
图10为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或 “耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对本申请涉及的术语及相关技术进行说明:
绝对高程:高程指的是某点沿铅垂线方向到绝对基面的距离,称绝对高程,简称高程。
相对高程:某点沿铅垂线方向到某假定水准基面的距离,称假定高程,也称相对高程。在本发明中,道路的相对高程被认为是道路上各点与地面的高度差,假定水准基面是地面。这个高程只提供给渲染使用,不要求严格还原现实。
SD地图:即Standard Definition Map,普通导航电子地图,一般是二维的,没有高程信息。
z-level:在SD地图中,一般用z-level来表示立交道路在立交点处的层级,立交点处上方道路在该点处的z-level比下方道路在该点处的z-level大,因此可用z-level判断道路在立交点处的高低关系。
数据编译:地图原始数据一般以文本文件的形式给出,常见的格式有geojson等。数据编译是对原始地图数据进行加工、处理,生成更紧凑、更易于使用的二进制文件,提供给上层应用方(如导航、定位、诱导、渲染等)调用。因此数据编译是一个承上启下的环节。
最优化:应用数学的一个分支,主要指在一定条件限制下,选取某种研究方案使目标达到最优的一种方法。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
需要说明的是,本申请书中相关数据收集处理在实例应用时应该严格根据相关国家法律法规的要求,获取个人信息主体的知情同意或单独同意,并在法律法规及个人信息主体的授权范围内,开展后续数据使用及处理行为。
图1为本申请实施例提供的一种地图中道路纵向层次数据处理方法的流程示意图,如图1所示,该方法可以包括:
步骤S101,基于目标地图数据获取各道路上的控制点以及各道路对应的约束,并以各控制点为节点,以各约束为边,构建对应的节点约束图,各道路对应的约束包括至少一个压盖约束。
其中,节点约束图,即体现目标地图中各控制点之间的约束关系的图,基于图论获取的一个图论模型,可以为无向图。需要说明的是,后文的描述中都以图论模型来替代节点约束图。
具体地,基于目标地图数据获取各道路上的控制点以及各道路对应的约束,并以各控制点为节点,以各约束为边,构建对应的图论模型,约束包括压盖约束、坡度约束和邻接约束,压盖约束用于约束对应的压盖区的上方控制点和下方控制点之间的高度降,坡度约束用于约束道路上任意相邻的两个控制点之间的坡度,邻接约束用于约束相连的两条道路的连接点的高度降。
其中,目标地图数据(SD数据)是本申请实施例需要进行道路纵向层次数据检查的地图数据,即需要进行z-level数据检查的地图数据。下面对z-level进行说明。
SD数据的提供方(也可以称为上游团队)提供的SD数据仅有二维信息,没有高程数据但提供了道路在立交点处的高低关系,这种高低关系即为zlevel关系。如图2所示,这是两条道路(即link)的俯视图,从平面上看它们在B点相交,实际上在交点处是存在高低关系的。上游团队会提供B点的经纬度坐标,以及link1上的B点高度Pb1和link2上的B点高度Pb2的大小关系:,即link1在link2上方,/>,即link1在link2下方。需要说明的是,link1和link2在SD数据中为无宽度的线段,link1和link2的相交区域称为压盖区,在SD数据中为对应的一个点B,该点又可称为立交点。
举例来说,上方道路在立交点处会给z-level值为1,下方道路在立交点处会给z-level值为0,由此可以根据z-level值的大小关系判断道路的高低关系。在立交点处,上方和下方的z-level值组成一个zlevel关系对。错误的z-level的表现是现实中下方道路的z-level值为1,上方道路的z-level为0,即z-level数据给出的高低关系与现实不一致。本申请实施例即需要对SD数据中的z-level数据进行检查。
其中,控制点可以是目标地图数据中道路的形点串中的点,可以是道路位于压盖区的点,道路上的立交点,也可以是道路的起始点和终止点,即每条道路的形点串的起点和终点。其中,每条道路可以划分一连串按顺序编号的点,这些带有序号的点即构成道路的形点串。那么,本申请实施例中每个控制点包含三个字段:该控制点的坐标、该控制点所属的道路、在所属道路的形点串中的索引下标(即序号)。
其中,本申请实施例中关注的约束可以有以下三种:压盖约束、坡度约束和邻接约束。当然,在处理的过程中也可以包括其他种类的约束,本申请不做限制。下面对这三种约束进行详细说明:
压盖约束就是根据z-level数据给出的道路在立交点处的高低关系,建立上方道路控制点与下方道路控制点的关系。具体的,上方道路控制点的高度减去下方道路控制点的高度不小于给定的最小高度差。例如,这里给定的最小高度差可以为1米,现实中几乎不存在高度差仅为1米的立交道路。换言之,压盖约束对应的高度降即为上方控制点到下方控制点之间的高度差。很显然,压盖约束用于约束对应的压盖区的上方控制点和下方控制点之间的高度降,一般来说用于限制高度降不能太小。压盖约束中包含两个字段:upperNode(上方控制点、上方道路控制点或上方节点)和downerNode(下方控制点、下方道路控制点或下方节点)。
邻接约束是前后相连的道路在连接点处的邻接关系,根据SD数据中的道路拓扑关系即可以构建。邻接约束用于约束相连的两条道路的连接点的高度降,一般来说,邻接约束用于限制相连的两条道路的连接点的高度降的高度降为零。邻接约束中包含两个字段:firstNode(第一控制点或第一节点)和secondNode(第二控制点或第二节点)。firstNode和secondNode的平面坐标是一样的,只是属于不同的道路。
坡度约束是对于任意一条道路,其上控制点按照在形点串中的索引下标排序后,任意两个相邻控制点之间的道路段的坡度限制,坡度约束的目的就是限制道路的坡度不能太大,要在给定的最大坡度之内,以防止道路出现陡升陡降的情况。两个相邻控制点之间的道路坡度不大于给定的最大坡度。例如,这里给定的最大坡度差为5度,现实中正常道路的坡度在3度之内。换言之,坡度约束用于约束道路上任意相邻的两个控制点之间的坡度。坡度约束中包含两个字段:startNode(起始控制点或起始节点)和endNode(终止控制点或终止节点)。startNode和endNode所属的道路是一样的,坐标和索引下标不同。
具体地,在获取了目标地图数据后,首先获取其中各条道路和各条道路上的控制点。具体来说,将各条道路的起始点和终止点作为该条道路的控制点,将各条道路在压盖区的点作为控制点。然后,根据获取到的控制点以及各控制点之间的位置关系,获取各条道路对应的约束。这些约束包括压盖约束,邻接约束,坡度约束。再然后,基于这些控制点和约束来构建对应的图论模型。具体来说,由于图论模型由节点和节点之间的边构成,那么以控制点为节点,以约束为变,构建图论模型。可以理解的是,每一约束对应的边连接的是该约束的两个控制点对应的两个节点。另外,节点之间的距离由边的长度确定,可以认为压盖约束和邻接约束对应的边的长度为零,为坡度约束对应的边的长度为对应的两个控制点在平面上的投影长度,在构建坡度约束时可以计算出来。该图论模型可以认为是一个无向图。
步骤S102,获取每一待验证压盖约束在节点约束图中对应的下方节点经其他节点到对应的上方节点的最短路径。
具体地,获取每一待验证压盖约束在图论模型中对应的下方节点经其他节点到对应的上方节点的最短路径,最短路径中每一节点携带有节点的在先节点的标识信息,在先节点为在最短路径的前进方向上与节点相邻的前一节点。
其中,图论模型中包含有多个压盖约束对应的边,每一压盖约束对应的边中包括在上方道路的控制点,即图论模型中的上方节点,还包括在下方道路的控制点,即图论模型中的下方节点。
具体地,由于本申请实施例为了检查目标地图数据中的z-level数据,而由前文描述可知,该z-level数可以由压盖约束来表征,因此本申请实施例会对压盖约束进行检查。具体来说,对于每一压盖约束,确定其在图论模型对应的上方节点和下方节点,然后获取在图论模型中从下方节点经其他节点到上方节点的最短路径,该节点中包含有一个或多个其他节点,且每个节点中携带有其在线节点的标识信息。该标识信息可用于后续获取闭合回路。
步骤S103,基于每一待验证压盖约束对应的最短路径,获取待验证压盖约束对应的闭合回路,闭合回路包含有最短路径对应的各控制点所对应的约束。
具体地,基于每一待验证压盖约束对应的最短路径中各节点携带的在先节点的标识信息,获取压盖约束对应的闭合回路,闭合回路包含有最短路径中各控制点对应的约束。
具体地,最短路径是一个不闭合的路径,将其与上方节点到下方节点之间的路径组合即可得到一个闭合的路径。然后可以进一步获取该闭合的路径中各控制点对应的约束,即可得到对应的闭合回路。
步骤S104,基于每一待验证压盖约束对应的闭合回路中的各约束,确定闭合回路中一个或多个压盖约束对应的纵向层次数据是否存在错误。
具体地,若任一待验证压盖约束对应的闭合回路中各约束不满足预设条件,则确定闭合回路中一个或多个压盖约束对应的纵向层次数据存在错误,预设条件用于指示闭合回路中任一压盖约束的高度降不小于第一预设高度,任一坡度约束的坡度的绝对值不大于预设坡度,任一邻接约束的高度降为第二预设高度。
具体地,在上一步骤中获取了目标地图数据所有压盖约束对应的闭合回路。因此,对于任一压盖约束,本申请实施例会设定对应的预设条件,然后判断该压盖约束对应的闭合回路中的各约束是否满足该预设条件。若满足则确定该闭合回路中所有压盖约束对应的纵向层次数据不存在错误,若不满足则确定该闭合回路中一个或多个压盖约束对应的纵向层次数据存在错误。该预设条件用于判断该闭合回路中是否所有约束都能够同时满足,具体来说,该预设条件可以包括闭合回路中任一压盖约束的高度降不小于第一预设高度,任一坡度约束的坡度的绝对值不大于预设坡度,任一邻接约束的高度降为第二预设高度。其中,第一预设高度、预设坡度以及第二预设高度可以根据实际需求进行设定。
具体来说,上述确定闭合回路中各约束是否满足预设条件可以通过构建对应的优化模型来确定,优化模型有解说明闭合回路中各约束满足预设条件,优化模型无解说明闭合回路中各约束不满足预设条件。
本申请提供的方案,在获取到目标地图数据后,构建地图中的控制点,并根据各控制点的位置关系确定出对应的压盖约束、坡度约束以及邻接约束。然后,以各控制点为节点,以各约束为边,构建对应的图论模型。对每一压盖约束进行检查时,获取该压盖约束在图论模型中从下方节点经其他节点到上方节点的最短路径。再然后,基于获取的最短路径获取每一压盖约束对应的包含各约束的闭合回路。最后,利用每一待验证压盖约束对应的闭合回路中的各约束,来确定闭合回路中压盖约束对应的纵向层次数据是否存在错误。该方案无需采用人工,且无需依赖过多的相关数据,提高了纵向层次数据检查的效率,降低了纵向层次数据检查的成本。
综上所述,现在技术方法需要依赖较多的原始地图数据(即相关数据或辅助信息)。对于数据编译团队,通常不容易拿到特别多的辅助信息判断z-level是否正确。但数据编译输出的结果会直接应用于渲染,因此需要对下游使用方负责。因此希望在数据编译时能从渲染效果的角度出发对z-level进行检查,而不依赖过多的原始地图数据。即本申请实施例提供的方案可以在数据编译过程中实施。如图3所示,该方案可以包括以下几个步骤:
(1)构建目标地图道路上的控制点;
(2)构建各道路对应的约束,包括压盖道路之间的压盖约束,道路之间的邻接约束,道路上的坡度约束;
(3)基于各控制点和三类约束构建对应的图论模型;
(4)对图论模型中的所有压盖约束进行遍历,直至完成所有压盖约束的遍历;
(5)对于每一当前压盖约束,获取该当前压盖约束从下方节点经其他节点到上方节点的最短路径,并获取该压盖约束对应的闭合回路;
(6)为闭合回路中的各约束建立优化模型;
(7)若该优化模型有解,则说明当前压盖约束对应的z-level数据不存在错误,若该优化模型无解,则说明当前压盖约束或该闭合回路中其他压盖约束对应的z-level数据存在错误。
下面将对该方案中最短路径的获取、闭合回路的获取以及确定闭合回路中各约束是否满足预设条件进行详细说明。
在本申请的一种可选实施例中,获取每一待验证压盖约束在图论模型中对应的下方节点经其他节点到对应的上方节点的最短路径,包括:
从下方节点开始对图论模型中的各节点进行如下遍历操作,直至遍历到下方节点;
按遍历顺序连接各遍历过的节点,得到最短路径;
其中,遍历操作包括:
基于索引堆获取与下方节点距离最小的节点作为当前遍历节点,并将当前遍历节点加入标记节点集,索引堆中存储有不同节点与下方节点之间的距离;
遍历图论模型中包含当前遍历节点的当前边,获取各当前边中除当前遍历节点的另一节点;
基于每一当前边的长度更新当前边对应的另一节点在索引堆中的距离和当前边对应的另一节点的在先节点。
具体地,为了获取从压盖约束的下方节点到上方节点的最短路径,需要从下方节点开始对图论模型中的节点进行遍历操作,最终在遍历到上方节点时结束,即获取到最短路径中的各个节点,按照遍历操作的执行顺序连接各个节点记得到最短路径。
具体来说,如图4所示,获取一个压盖约束在图论模型中对应的最短路径可以包括以下几个步骤:
(1)首先获取压盖约束对应的上方节点和下方节点;
(2)创建索引堆(indexHeap)和标记节点集。其中,索引堆中记录有不同节点到下方节点的距离(下方节点到下方节点的距离记为0),索引堆是一种优化的优先级队列,可以高效地修改内部元素的数值(本申请实施例中指的是某个节点到下方节点的距离)。标记节点集用于存储已经确定了与下方节点的最小距离的节点;
(3)从索引堆中取出与下方节点之间的距离中的最小距离,并将该最小距离对应的节点作为当前遍历节点,例如,第一次遍历操作对应的当前遍历节点即为下方节点,并将当前遍历节点加入标记节点集;
(4)若当前遍历节点为上方节点,则结束遍历,得到最短路径;若当前遍历节点不为上方节点,则对当前遍历节点进行遍历操作。
进一步地,当前边为包含当前遍历节点的边中除特定边以外的边,特定边包括待验证压盖约束对应的边,以及另一节点在标记节点集中的边。
具体地,如图5所示,每一次遍历操作可以包括以下几个步骤:
(1)获取当前遍历节点对应的当前边;
(2)遍历每一条当前边,直至遍历完所有当前边;
(3)对于每一条当前边,获取当前边中除当前遍历节点外的另一节点;
(4)更新另一节点到下方节点的距离,同时更新另一节点中携带的在先节点。
在本申请的一种可选实施例中,基于每一当前边的长度更新当前边对应的另一节点在索引堆中的距离和当前边对应的另一节点的在先节点,包括:
若索引堆中包含了另一节点与下方节点之间的距离,且若距离大于当前遍历节点在索引堆中的距离与当前边的长度之和,则将另一节点在索引堆中的距离更新为当前遍历节点在索引堆中的距离与当前边的长度之和,并将另一节点的在先节点更新为当前遍历节点;
若索引堆中不包含另一节点与下方节点之间的距离,则将当前遍历节点在索引堆中的距离与当前边的长度之和,作为另一节点在索引堆中的距离,并将另一节点的在先节点更新为下方节点。
具体地,如图6所示,更新每一另一节点在索引堆中的距离(即该另一节点到下方节点的距离)的过程可以包括以下几个步骤:
(1)获取该另一节点所属的当前边的长度;
(2)判断在索引堆中是否记录有该另一节点的距离,若有则执行步骤(3)至(4);若没有则执行步骤(5);
(3)获取该另一节点在索引堆中的距离和当前遍历节点在索引堆中的距离;
(4)若该另一节点在索引堆中的距离小于或等于当前遍历节点在索引堆中的距离与当前边的长度之和,则无需更新;若该另一节点在索引堆中的距离大于当前遍历节点在索引堆中的距离与当前边的长度之和,则利用当前遍历节点在索引堆中的距离与当前边的长度之和更新该另一节点在索引堆中的距离;
(5)获取当前遍历节点在索引堆中的距离,并利用当前遍历节点在索引堆中的距离与当前边的长度之和更新该另一节点在索引堆中的距离。
在本申请的一种可选实施例中,基于每一待验证压盖约束对应的最短路径中各节点携带的在先节点的标识信息,获取压盖约束对应的闭合回路,包括:
基于各节点所携带的在先节点的标识信息,从上方节点开始对最短路径中的各节点进行回溯操作,直至回溯到下方节点;
基于回溯操作得到的各约束以及待验证压盖约束,得到闭合回路;
其中,回溯操作包括:
基于当前回溯节点携带的在先节点的标识信息,获取当前回溯节点的在先节点;
基于图论模型获取当前回溯节点与在先节点之间的边对应的约束。
具体地,如图7所示,根据待验证压盖约束对应的最短路径获取对应的闭合回路可以包括以下几个步骤:
(1)从最短路径中的上方节点开始回溯操作,直至回溯至下方节点;
(2)基于每次回溯操作得到的约束与待验证压盖约束一起,得到对应的闭合回路。
需要说明的是,在回溯过程中还需要获取各约束的方向。
在本申请的一种可选实施例中,回溯操作还包括:
若当前回溯节点与在先节点之间的边对应的约束为压盖约束,且压盖约束的上方节点为在先节点,则确定压盖约束的方向与闭合回路一致;
若当前回溯节点与在先节点之间的边对应的约束为压盖约束,且压盖约束的上方节点为当前回溯节点,则确定压盖约束的方向与闭合回路不一致;
若当前回溯节点与在先节点之间的边对应的约束不为压盖约束,则确定约束的方向与闭合回路一致或不一致。
具体地,如图8所示,每次回溯操作可以包括以下几个步骤:
(1)获取当前回溯节点,并获取当前回溯节点携带的在先节点的标识信息;
(2)在图论模型中获取当前回溯节点与在先节点之间的边,并获取该边对应的约束;
(3)若当前回溯节点与在先节点之间的边对应的约束为压盖约束,且压盖约束的上方节点为在先节点,则确定压盖约束的方向与闭合回路一致;若当前回溯节点与在先节点之间的边对应的约束为压盖约束,且压盖约束的上方节点为当前回溯节点,则确定压盖约束的方向与闭合回路不一致;若当前回溯节点与在先节点之间的边对应的约束不为压盖约束,则确定约束的方向与闭合回路一致或不一致。
在本申请的一种可选实施例中,通过如下方式确定任一待验证压盖约束对应的闭合回路中各约束是否满足预设条件:
构建闭合回路对应的优化模型,优化模型的目标函数为闭合回路中各压盖约束的高度降与各坡度约束的高度降之和为零,优化模型的约束条件包括:闭合回路中任一压盖约束的高度降不小于预设高度,以及任一坡度约束的坡度的绝对值不大于预设坡度;
若优化模型有解,则确定任一待验证压盖约束对应的闭合回路中各约束满足预设条件,若优化模型无解,则确定任一待验证压盖约束对应的闭合回路中各约束不满足预设条件。
具体地,由于本申请实施例中获取了待验证压盖约束对应的闭合回路,由于其是闭合的,因此闭合回路中各约束产生的高度降之和为0。即有:
其中,为闭合回路中所有压盖约束产生的高度降,/>为闭合回路中所有邻接约束产生的高度降,显然/>,/>为闭合回路中所有坡度约束产生的高度降。
那么,上式可以简化为:
对于压盖约束,上方道路控制点的高度减去下方道路控制点的高度不小于给定的最小压盖高度差(即第一预设高度),因此,若压盖约束的方向与闭合回路的方向一致(可表示为isForward为true),则有:
若压盖约束的方向与闭合回路的方向不一致(可表示为isForward为false),则有:
其中,H为给定的第一预设高度。
对于坡度约束,有:
其中,S为给定的最大坡度,s为控制点之间的实际坡度,为控制点之间的距离。
因此,判断闭合回路中约束之间是否存在冲突的问题等效为求解一个带有约束条件的非线性方程:
寻找一组和/>,使得:
同时判断约束条件:
,当isForward为true
,当isForward为false
是否可以同时满足。
为了求解这个问题,这里将其建模为一个带有约束条件的最优化问题,激活区一个优化模型,即:
s.t.
,当isForward为true
,当isForward为false
如果目标函数的最小值为0,那么说明存在一组/>,使得优化模型有解。
如果目标函数大于0,说明原优化模型无解,即闭合回路内的约束无法同时满足,存在zlevel错误的情况。
这个建立的优化模型是一个典型的二次规划模型,已有非常成熟的开源求解器可以使用,比如OSQP或IPOPT等。
在优化模型无解的情况下,如果闭合回路中只有一个压盖约束,那么可以判定这个压盖约束对应的zlevel关系对错误,错误的原因大概率是这里本来应该是一个平交路口,但是数据制作成了立交关系。如果闭合回路中存在多个压盖约束,那么可以判定这些压盖约束彼此矛盾,在这些矛盾的压盖约束中,至少存在一个错误的压盖约束(即错误的z-level关系对),将这些冲突的z-level反馈给上游数据团队,可以大幅度缩小排查z-level错误的范围,提高效率。
需要说明的是,本申请提供的方案除了地图行业外,也可以用在游戏行业和立交道路设计中。比如在游戏行业,为了生成立交道路效果,可以先生成这些立交道路在平面俯视图上的形状点位置,然后再人为给出这些立交道路在立交点处的高低关系。本发明可以判断人为给出的立交点处的高低关系是否合理。不合理意味着生成的立交道路在立交点处无法保证足够的高度差,立交效果不明显。在立交道路设计中的应用与游戏行业类似,在此不再赘述。
图9为本申请实施例提供的一种地图中道路纵向层次数据处理装置的结构框图,如图9所示,该装置900可以包括:图论模型获取模块901、最短路径获取模块902、闭合回路获取模块903和纵向层次数据处理模块904,其中:
节点约束图获取模块901用于基于目标地图数据获取各道路上的控制点以及各道路对应的约束,并以各控制点为节点,以各约束为边,构建对应的节点约束图,各道路对应的约束包括至少一个压盖约束;
最短路径获取模块902用于获取每一待验证压盖约束在节点约束图中对应的下方节点经其他节点到对应的上方节点的最短路径;
闭合回路获取模块903用于基于每一待验证压盖约束对应的最短路径,获取待验证压盖约束对应的闭合回路,闭合回路包含有最短路径对应的各控制点所对应的约束;
纵向层次数据处理模块904用于基于每一待验证压盖约束对应的闭合回路中的各约束,确定闭合回路中一个或多个压盖约束对应的纵向层次数据是否存在错误。
本申请提供的方案,在获取到目标地图数据后,构建地图中的控制点,并根据各控制点的位置关系确定出对应的压盖约束、坡度约束以及邻接约束。然后,以各控制点为节点,以各约束为边,构建对应的图论模型。对每一压盖约束进行检查时,获取该压盖约束在图论模型中从下方节点经其他节点到上方节点的最短路径。再然后,基于获取的最短路径获取每一压盖约束对应的包含各约束的闭合回路。最后,利用每一待验证压盖约束对应的闭合回路中的各约束,来确定闭合回路中压盖约束对应的纵向层次数据是否存在错误。该方案无需采用人工,且无需依赖过多的相关数据,提高了纵向层次数据检查的效率,降低了纵向层次数据检查的成本。
在本申请的一种可选实施例中,最短路径获取模块具体用于:
从下方节点开始对节点约束图中的各节点进行遍历操作,直至遍历到下方节点;
按遍历顺序连接各遍历过的节点,得到最短路径;
其中,遍历操作包括:
基于索引堆获取与下方节点距离最小的节点作为当前遍历节点,索引堆中存储有不同节点与下方节点之间的距离;
遍历节点约束图中包含当前遍历节点的当前边,获取各当前边中除当前遍历节点的另一节点;
基于每一当前边的长度更新当前边对应的另一节点在索引堆中的距离和当前边对应的另一节点的在先节点。
在本申请的一种可选实施例中,最短路径获取模块进一步用于:
将当前遍历节点加入标记节点集。
在本申请的一种可选实施例中,当前边为包含当前遍历节点的边中除特定边以外的边,特定边包括待验证压盖约束对应的边,以及另一节点在标记节点集中的边。
在本申请的一种可选实施例中,最短路径获取模块进一步用于:
若索引堆中包含了另一节点与下方节点之间的距离,且若距离大于当前遍历节点在索引堆中的距离与当前边的长度之和,则将另一节点在索引堆中的距离更新为当前遍历节点在索引堆中的距离与当前边的长度之和,并将另一节点的在先节点更新为当前遍历节点;
若索引堆中不包含另一节点与下方节点之间的距离,则将当前遍历节点在索引堆中的距离与当前边的长度之和,作为另一节点在索引堆中的距离,并将另一节点的在先节点更新为下方节点。
在本申请的一种可选实施例中,最短路径中每一节点携带有节点的在先节点的标识信息,在先节点为在最短路径的前进方向上与节点相邻的前一节点;
闭合回路获取模块具体用于:
基于每一待验证压盖约束对应的最短路径中各节点携带的在先节点的标识信息,获取压盖约束对应的闭合回路。
在本申请的一种可选实施例中,基于每一待验证压盖约束对应的最短路径中各节点携带的在先节点的标识信息,获取压盖约束对应的闭合回路,包括:
基于各节点所携带的在先节点的标识信息,从上方节点开始对最短路径中的各节点进行回溯操作,直至回溯到下方节点;
基于回溯操作得到的各约束以及待验证压盖约束,得到闭合回路;
其中,回溯操作包括:
基于当前回溯节点携带的在先节点的标识信息,获取当前回溯节点的在先节点;
基于节点约束图获取当前回溯节点与在先节点之间的边对应的约束。
在本申请的一种可选实施例中,闭合回路获取模块进一步用于:
若当前回溯节点与在先节点之间的边对应的约束为压盖约束,且压盖约束的上方节点为在先节点,则确定压盖约束的方向与闭合回路一致;
若当前回溯节点与在先节点之间的边对应的约束为压盖约束,且压盖约束的上方节点为当前回溯节点,则确定压盖约束的方向与闭合回路不一致;
若当前回溯节点与在先节点之间的边对应的约束不为压盖约束,则确定约束的方向与闭合回路一致或不一致。
在本申请的一种可选实施例中,纵向层次数据处理模块具体用于:
若每一待验证压盖约束对应的闭合回路中各约束不满足预设条件,则确定闭合回路中一个或多个压盖约束对应的纵向层次数据存在错误,预设条件用于指示闭合回路中任一压盖约束的高度降不小于第一预设高度,任一坡度约束的坡度的绝对值不大于预设坡度,任一邻接约束的高度降为第二预设高度。
在本申请的一种可选实施例中,纵向层次数据处理模块进一步用于:
构建闭合回路对应的优化模型,优化模型的目标函数为闭合回路中各压盖约束的高度降与各坡度约束的高度降之和为零,优化模型的约束条件包括:闭合回路中任一压盖约束的高度降不小于预设高度,以及任一坡度约束的坡度的绝对值不大于预设坡度;
若优化模型有解,则确定任一待验证压盖约束对应的闭合回路中各约束满足预设条件,若优化模型无解,则确定任一待验证压盖约束对应的闭合回路中各约束不满足预设条件。
在本申请的一种可选实施例中,压盖约束用于约束对应的压盖区的上方控制点和下方控制点之间的高度降,坡度约束用于约束道路上任意相邻的两个控制点之间的坡度,邻接约束用于约束相连的两条道路的连接点的高度降。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
下面参考图10,其示出了适于用来实现本申请实施例的电子设备(例如执行图1所示方法的终端设备或服务器)1000的结构示意图。本申请实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)、可穿戴设备等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图10示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
电子设备包括:存储器以及处理器,存储器用于存储执行上述各个方法实施例所述方法的程序;处理器被配置为执行存储器中存储的程序。其中,这里的处理器可以称为下文所述的处理装置1001,存储器可以包括下文中的只读存储器(ROM)1002、随机访问存储器(RAM)1003以及存储装置1008中的至少一项,具体如下所示:
如图10所示,电子设备1000可以包括处理装置(例如中央处理器、图形处理器等)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储装置1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。在RAM1003中,还存储有电子设备1000操作所需的各种程序和数据。处理装置1001、ROM 1002以及RAM1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
通常,以下装置可以连接至I/O接口1005:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1006;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1007;包括例如磁带、硬盘等的存储装置1008;以及通信装置1009。通信装置1009可以允许电子设备1000与其他设备进行无线或有线通信以交换数据。虽然图10示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1009从网络上被下载和安装,或者从存储装置1008被安装,或者从ROM 1002被安装。在该计算机程序被处理装置1001执行时,执行本申请实施例的方法中限定的上述功能。
需要说明的是,本申请上述的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
基于目标地图数据获取各道路上的控制点以及各道路对应的约束,并以各控制点为节点,以各约束为边,构建对应的节点约束图,各道路对应的约束包括至少一个压盖约束;获取每一待验证压盖约束在节点约束图中对应的下方节点经其他节点到对应的上方节点的最短路径;基于每一待验证压盖约束对应的最短路径,获取待验证压盖约束对应的闭合回路,闭合回路包含有最短路径对应的各控制点所对应的约束;基于每一待验证压盖约束对应的闭合回路中的各约束,确定闭合回路中一个或多个压盖约束对应的纵向层次数据是否存在错误。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块或单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一约束获取模块还可以被描述为“获取第一约束的模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现如下情况:
基于目标地图数据获取各道路上的控制点以及各道路对应的约束,并以各控制点为节点,以各约束为边,构建对应的节点约束图,各道路对应的约束包括至少一个压盖约束;获取每一待验证压盖约束在节点约束图中对应的下方节点经其他节点到对应的上方节点的最短路径;基于每一待验证压盖约束对应的最短路径,获取待验证压盖约束对应的闭合回路,闭合回路包含有最短路径对应的各控制点所对应的约束;基于每一待验证压盖约束对应的闭合回路中的各约束,确定闭合回路中一个或多个压盖约束对应的纵向层次数据是否存在错误。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (13)

1.一种地图中道路纵向层次数据处理方法,其特征在于,包括:
基于目标地图数据获取各道路上的控制点以及各道路对应的约束,并以各控制点为节点,以各约束为边,构建对应的节点约束图,各道路上的控制点包括道路位于压盖区的点、道路的起始点和终止点,所述约束包括压盖约束、坡度约束和邻接约束,所述压盖约束用于约束对应的压盖区的上方控制点和下方控制点之间的高度降,所述坡度约束用于约束道路上任意相邻的两个控制点之间的坡度,所述邻接约束用于约束相连的两条道路的连接点的高度降,各道路对应的约束包括至少一个压盖约束;
获取每一待验证压盖约束在所述节点约束图中对应的下方节点经其他节点到对应的上方节点的最短路径;
基于每一待验证压盖约束对应的最短路径,获取所述待验证压盖约束对应的闭合回路,所述闭合回路包含有所述最短路径对应的各控制点所对应的约束;
基于每一待验证压盖约束对应的闭合回路中的各约束,确定所述闭合回路中一个或多个压盖约束对应的纵向层次数据是否存在错误。
2.根据权利要求1所述的方法,其特征在于,所述获取每一待验证压盖约束在所述节点约束图中对应的下方节点经其他节点到对应的上方节点的最短路径,包括:
从所述下方节点开始对所述节点约束图中的各节点进行遍历操作,直至遍历到所述下方节点;
按遍历顺序连接各遍历过的节点,得到所述最短路径;
其中,所述遍历操作包括:
基于索引堆获取与所述下方节点距离最小的节点作为当前遍历节点,所述索引堆中存储有不同节点与所述下方节点之间的距离;
遍历所述节点约束图中包含所述当前遍历节点的当前边,获取各当前边中除所述当前遍历节点的另一节点;
基于每一当前边的长度更新所述当前边对应的另一节点在所述索引堆中的距离和所述当前边对应的另一节点的在先节点。
3.根据权利要求2所述的方法,其特征在于,所述基于每一当前边的长度更新所述当前边对应的另一节点在所述索引堆中的距离和所述当前边对应的另一节点的在先节点,包括:
若所述索引堆中包含了所述另一节点与所述下方节点之间的距离,且若所述距离大于所述当前遍历节点在所述索引堆中的距离与所述当前边的长度之和,则将所述另一节点在所述索引堆中的距离更新为所述当前遍历节点在所述索引堆中的距离与所述当前边的长度之和,并将所述另一节点的在先节点更新为所述当前遍历节点;
若所述索引堆中不包含所述另一节点与所述下方节点之间的距离,则将所述当前遍历节点在所述索引堆中的距离与所述当前边的长度之和,作为所述另一节点在所述索引堆中的距离,并将所述另一节点的在先节点更新为所述下方节点。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述最短路径中每一节点携带有所述节点的在先节点的标识信息,所述在先节点为在所述最短路径的前进方向上与所述节点相邻的前一节点;
所述基于每一待验证压盖约束对应的最短路径,获取所述待验证压盖约束对应的闭合回路,包括:
基于每一待验证压盖约束对应的最短路径中各节点携带的在先节点的标识信息,获取所述压盖约束对应的闭合回路。
5.根据权利要求4所述的方法,其特征在于,所述基于每一待验证压盖约束对应的最短路径中各节点携带的在先节点的标识信息,获取所述压盖约束对应的闭合回路,包括:
基于各节点所携带的在先节点的标识信息,从所述上方节点开始对所述最短路径中的各节点进行回溯操作,直至回溯到所述下方节点;
基于所述回溯操作得到的各约束以及所述待验证压盖约束,得到所述闭合回路;
其中,所述回溯操作包括:
基于当前回溯节点携带的在先节点的标识信息,获取当前回溯节点的在先节点;
基于所述节点约束图获取所述当前回溯节点与所述在先节点之间的边对应的约束。
6.根据权利要求5所述的方法,其特征在于,所述回溯操作还包括:
若所述当前回溯节点与所述在先节点之间的边对应的约束为压盖约束,且所述压盖约束的上方节点为所述在先节点,则确定所述压盖约束的方向与所述闭合回路一致;
若所述当前回溯节点与所述在先节点之间的边对应的约束为压盖约束,且所述压盖约束的上方节点为所述当前回溯节点,则确定所述压盖约束的方向与所述闭合回路不一致;
若所述当前回溯节点与所述在先节点之间的边对应的约束不为压盖约束,则确定所述约束的方向与所述闭合回路一致或不一致。
7.根据权利要求1所述的方法,其特征在于,所述基于每一待验证压盖约束对应的闭合回路中的各约束,确定所述闭合回路中一个或多个压盖约束对应的纵向层次数据是否存在错误,包括:
若每一待验证压盖约束对应的闭合回路中各约束不满足预设条件,则确定所述闭合回路中一个或多个压盖约束对应的纵向层次数据存在错误,所述预设条件用于指示所述闭合回路中任一压盖约束的高度降不小于第一预设高度,任一坡度约束的坡度的绝对值不大于预设坡度,任一邻接约束的高度降为第二预设高度。
8.根据权利要求7所述的方法,其特征在于,通过如下方式确定任一待验证压盖约束对应的闭合回路中各约束是否满足预设条件:
构建所述闭合回路对应的优化模型,所述优化模型的目标函数为所述闭合回路中各压盖约束的高度降与各坡度约束的高度降之和为零,所述优化模型的约束条件包括:所述闭合回路中任一压盖约束的高度降不小于预设高度,以及任一坡度约束的坡度的绝对值不大于预设坡度;
若所述优化模型有解,则确定所述任一待验证压盖约束对应的闭合回路中各约束满足预设条件,若所述优化模型无解,则确定所述任一待验证压盖约束对应的闭合回路中各约束不满足预设条件。
9.根据权利要求7所述的方法,其特征在于,所述压盖约束用于约束对应的压盖区的上方控制点和下方控制点之间的高度降,所述坡度约束用于约束道路上任意相邻的两个控制点之间的坡度,所述邻接约束用于约束相连的两条道路的连接点的高度降。
10.一种地图中道路纵向层次数据处理装置,其特征在于,包括:
节点约束图获取模块,用于基于目标地图数据获取各道路上的控制点以及各道路对应的约束,并以各控制点为节点,以各约束为边,构建对应的节点约束图,各道路上的控制点包括道路位于压盖区的点、道路的起始点和终止点,所述约束包括压盖约束、坡度约束和邻接约束,所述压盖约束用于约束对应的压盖区的上方控制点和下方控制点之间的高度降,所述坡度约束用于约束道路上任意相邻的两个控制点之间的坡度,所述邻接约束用于约束相连的两条道路的连接点的高度降,各道路对应的约束包括至少一个压盖约束;
最短路径获取模块,用于获取每一待验证压盖约束在所述节点约束图中对应的下方节点经其他节点到对应的上方节点的最短路径;
闭合回路获取模块,用于基于每一待验证压盖约束对应的最短路径,获取所述待验证压盖约束对应的闭合回路,所述闭合回路包含有所述最短路径对应的各控制点所对应的约束;
纵向层次数据处理模块,用于基于每一待验证压盖约束对应的闭合回路中的各约束,确定所述闭合回路中一个或多个压盖约束对应的纵向层次数据是否存在错误。
11.一种电子设备,其特征在于,包括存储器和处理器;
所述存储器中存储有计算机程序;
所述处理器,用于执行所述计算机程序以实现权利要求1至9中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法。
13.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的方法。
CN202310996438.9A 2023-08-09 2023-08-09 地图中道路纵向层次数据处理方法及装置 Active CN116704148B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310996438.9A CN116704148B (zh) 2023-08-09 2023-08-09 地图中道路纵向层次数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310996438.9A CN116704148B (zh) 2023-08-09 2023-08-09 地图中道路纵向层次数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN116704148A true CN116704148A (zh) 2023-09-05
CN116704148B CN116704148B (zh) 2024-02-06

Family

ID=87829764

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310996438.9A Active CN116704148B (zh) 2023-08-09 2023-08-09 地图中道路纵向层次数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN116704148B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138601A (zh) * 2015-08-06 2015-12-09 中国科学院软件研究所 一种支持模糊约束关系的图模式匹配方法
CN111238506A (zh) * 2018-11-29 2020-06-05 沈阳美行科技有限公司 一种地图中高架道路的描画方法、装置及相关设备
CN111275807A (zh) * 2018-12-05 2020-06-12 北京嘀嘀无限科技发展有限公司 一种3d道路建模的方法和系统
WO2021242416A1 (en) * 2020-05-28 2021-12-02 rideOS, Inc. Systems and methods of translating routing constraints to a map
CN115615442A (zh) * 2022-10-20 2023-01-17 阿里巴巴(中国)有限公司 道路高程的确定方法、装置、电子设备及计算机程序产品

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138601A (zh) * 2015-08-06 2015-12-09 中国科学院软件研究所 一种支持模糊约束关系的图模式匹配方法
CN111238506A (zh) * 2018-11-29 2020-06-05 沈阳美行科技有限公司 一种地图中高架道路的描画方法、装置及相关设备
CN111275807A (zh) * 2018-12-05 2020-06-12 北京嘀嘀无限科技发展有限公司 一种3d道路建模的方法和系统
WO2021242416A1 (en) * 2020-05-28 2021-12-02 rideOS, Inc. Systems and methods of translating routing constraints to a map
CN115615442A (zh) * 2022-10-20 2023-01-17 阿里巴巴(中国)有限公司 道路高程的确定方法、装置、电子设备及计算机程序产品

Also Published As

Publication number Publication date
CN116704148B (zh) 2024-02-06

Similar Documents

Publication Publication Date Title
US10001378B2 (en) Incremental map generation, refinement and extension with GPS traces
CN109949692B (zh) 路网匹配方法、装置、计算机设备及存储介质
CN111862605B (zh) 路况检测方法、装置、电子设备及可读存储介质
CN113989451A (zh) 高精地图构建方法、装置及电子设备
Yang et al. A map‐algebra‐based method for automatic change detection and spatial data updating across multiple scales
CN105893577A (zh) 路网数据处理方法及装置
CN114662253A (zh) 一种仿真建模方法、装置、电子设备及存储介质
CN112487115A (zh) 污染源的确定方法、装置、设备及存储介质
JP2019095569A (ja) 地図情報処理装置、地図情報処理方法および地図情報処理プログラム
CN116704148B (zh) 地图中道路纵向层次数据处理方法及装置
CN116091716A (zh) 一种基于深度学习的高精度地图自动化制作系统及方法
CN115774766A (zh) 差分算法模型的评测、确定更新地图数据的方法及装置
CN110726414A (zh) 用于输出信息的方法和装置
CN112256811B (zh) 一种基于图结构的地图信息表示方法及装置
CN115100231A (zh) 一种区域边界的确定方法和装置
CN113008246B (zh) 地图匹配方法和装置
CN114136327A (zh) 一种虚线段的查全率的自动化检查方法及系统
JP6666821B2 (ja) 経路案内装置、経路案内方法、及びプログラム
CN115993137B (zh) 车辆定位评估方法、装置、电子设备和计算机可读介质
CN112883141B (zh) 电子地图的数据处理方法、装置、设备及计算机存储介质
CN114427876B (zh) 一种交通看板关联关系的自动化检查方法及系统
CN112798006B (zh) 一种不同路径的差异点分析方法、装置、存储介质及终端
Lazorenko-Hevel et al. Automation of quality control of digital topographic maps at the scale 1: 50 000 of the Main State Topographic Map in Ukraine
CN114579549A (zh) 信息核实方法、装置、电子设备、存储介质及产品
CN117077335A (zh) 基于多源数据的城市道路网密度计算方法、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant