一种基于ContractionHierarchies的国内路网数据编译方法与流程

文档序号:26138995发布日期:2021-08-03 14:22阅读:288来源:国知局
一种基于Contraction Hierarchies的国内路网数据编译方法与流程
本发明涉及路径规划
技术领域
,特别涉及一种基于contractionhierarchies的国内路网数据编译方法。
背景技术
:随着国内道路的不断增加,定位技术及道路规划、导航技术也在不断发展,规划合理的路径显得越来越重要。现有技术中对国内路网数据编译时,存在以下问题:1、路网结构固定,无法根据不同数据源设置变长索引,不够灵活;2、规划较长距离路径时,搜索数据的范围过大,导致效率降低。技术实现要素:本发明旨在至少一定程度上解决上述技术中的技术问题之一。为此,本发明的目的在于提出一种基于contractionhierarchies的国内路网数据编译方法,可以根据不同数据源设置变长索引,路网数据编译更加灵活;在规划较长距离路径时,缩小搜索数据的范围,提高搜索效率。为达到上述目的,本发明实施例提出了一种基于contractionhierarchies的国内路网数据编译方法,包括:生成顶点结构,并初始化所述顶点结构,所述顶点结构包括多个顶点,分别读取多个顶点中存储的顶点数据,所述顶点数据包括道路数据、经度数据及纬度数据;生成邻接表结构,并初始化所述邻接表结构;基于所述领接表结构对所述道路数据进行解析,获取解析数据;根据所述解析数据执行路径规划前的查询任务。根据本发明的一些实施例,所述解析数据包括所述道路数据对应的道路的id、第一顶点id、第二顶点id、第一顶点id连接的相邻的第一道路id、第二顶点id连接的相邻的第二道路id、所述道路数据对应的道路的长度信息、属性信息及顶点结构中顶点相关联的第三道路id。根据本发明的一些实施例,所述属性信息包括所述道路数据对应的道路的通行方向、道路等级、道路限速、道路权重;所述道路等级分为高速路、国道省道、城市一级路、城市二级路、城市三级路、乡村路及内部道路共7级;其中,道路等级关系为高速路>国道省道>城市一级路>城市二级路>城市三级路>乡村路>内部道路。根据本发明的一些实施例,根据所述解析数据执行路径规划前的查询任务,包括:将所述解析数据进行数据划分,得到第一数据结构及第二数据结构;所述第一数据结构包括所述道路数据对应的道路的id、第一顶点id、第二顶点id、第一顶点id连接的相邻的第一道路id、第二顶点id连接的相邻的第二道路id;所述第二数据结构包括顶点结构中顶点相关联的第三道路id;将所述第一数据结构存储在第一二进制文件夹中;将所述第二数据结构存储在第二二进制文件中;在对路径规划时,调用第一二进制文件夹及第二二进制文件夹进行国内路网数据编译。根据本发明的一些实施例,在执行路径规划前的查询任务前,还包括创建查询捷径,包括:在顶点结构中选择一目标顶点,设置目标顶点的等级为所述顶点连接的所有道路的道路等级的最小值;获取与所述目标顶点相邻的两个顶点的等级;判断与所述目标顶点相邻的两个顶点的等级是否均大于目标顶点的等级;在确定与所述目标顶点相邻的两个顶点的等级均大于目标顶点的等级时,判断与所述目标顶点相邻的两个顶点间的最小权重路径是否经过所述目标顶点;在确定与所述目标顶点相邻的两个顶点间的最小权重路径经过所述目标顶点时,在所述目标顶点相邻的两个顶点间添加一条捷径;所述捷径包括目标顶点相邻的两个顶点间的道路及收缩掉目标顶点;在创建完成关于目标顶点的查询捷径后,依次循环顶点结构中的其他顶点,并创建关于其他顶点的查询捷径。根据本发明的一些实施例,还包括:在创建完成对顶点结构中所有顶点的查询捷径后,得到新的顶点结构,对新的顶点结构再次创建捷径。根据本发明的一些实施例,每个所述顶点数据采用3个int,共12字节进行存储;每个所述道路数据采用6个int,共24字节进行存储。根据本发明的一些实施例,所述属性信息采用1个字节进行存储,1个字节包括8位;所述字节的不同位分别存储所述道路数据对应的道路的通行方向、道路等级、道路限速及道路权重。在一实施例中,在根据所述解析数据执行路径规划前的查询任务后,确定规划路径,对所述规划路径进行评价,计算得到评价值,并判断所述评价值是否小于预设评价值,在确定所述评价值小于预设评价值时,对所述规划路径进行路径优化处理;所述对所述规划路径进行评价,计算得到评价值,包括:计算规划路径的平滑度s:其中,ti+1为第i+1条道路的长度;ti为第i条道路的长度;wi+1为第i+1条道路的弯曲率;wi第i条道路的弯曲率;ui为第i条道路的平整系数;n为规划路径包括的道路的数量;t0为对规划路径的预估行驶时长;t1为对规划路径的起点与终点基于历史记录获取的平均行驶时长;根据规划路径的平滑度,计算得到评价值m:其中,m0为预设评价值;mi为第i条道路的道路等级对应的数值;m0为预设的道路等级的最大值。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。附图说明附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:图1是根据本发明一个实施例的一种基于contractionhierarchies的国内路网数据编译方法的流程图;图2是根据本发明一个实施例的顶点结构与邻接表结构的示意图。具体实施方式以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。如图1所示,本发明实施例提出了一种基于contractionhierarchies的国内路网数据编译方法,包括:s1、生成顶点结构,并初始化所述顶点结构,所述顶点结构包括多个顶点,分别读取多个顶点中存储的顶点数据,所述顶点数据包括道路数据、经度数据及纬度数据;s2、生成邻接表结构,并初始化所述邻接表结构;基于所述领接表结构对所述道路数据进行解析,获取解析数据;s3、根据所述解析数据执行路径规划前的查询任务。上述技术方案的工作原理:基于最短路径ch算法(contractionhierarchies)进行国内路网数据编译。在编译过程中可以使用32位或64位的编译器。生成顶点结构,并初始化所述顶点结构,所述顶点结构包括多个顶点,分别读取多个顶点中存储的顶点数据,所述顶点数据包括道路数据、经度数据及纬度数据;生成邻接表结构,并初始化所述邻接表结构;基于所述领接表结构对所述道路数据进行解析,获取解析数据;根据所述解析数据执行路径规划前的查询任务。上述技术方案的有益效果:根据不同的数据用户的不同需求可以根据不同数据源设置变长索引,可以灵活自定义收缩层级,路径规划时先查询捷径中的数据,减少了访问节点的数量,在规划较长距离路径时,缩小搜索数据的范围,提高搜索效率。根据本发明的一些实施例,所述解析数据包括所述道路数据对应的道路的id、第一顶点id、第二顶点id、第一顶点id连接的相邻的第一道路id、第二顶点id连接的相邻的第二道路id、所述道路数据对应的道路的长度信息、属性信息及顶点结构中顶点相关联的第三道路id。上述技术方案的有益效果:根据解析数据便于进行路径规划,同时在规划路径后,便于补全线路详细信息。根据本发明的一些实施例,所述属性信息包括所述道路数据对应的道路的通行方向、道路等级、道路限速、道路权重;所述道路等级分为高速路、国道省道、城市一级路、城市二级路、城市三级路、乡村路及内部道路共7级;其中,道路等级关系为高速路>国道省道>城市一级路>城市二级路>城市三级路>乡村路>内部道路。上述技术方案的有益效果:道路等级为执行ch算法的重要排序标准,便于创建捷径,减少搜索节点数量,提高搜索效率。根据本发明的一些实施例,根据所述解析数据执行路径规划前的查询任务,包括:将所述解析数据进行数据划分,得到第一数据结构及第二数据结构;所述第一数据结构包括所述道路数据对应的道路的id、第一顶点id、第二顶点id、第一顶点id连接的相邻的第一道路id、第二顶点id连接的相邻的第二道路id;所述第二数据结构包括顶点结构中顶点相关联的第三道路id;将所述第一数据结构存储在第一二进制文件夹中;将所述第二数据结构存储在第二二进制文件中;在对路径规划时,调用第一二进制文件夹及第二二进制文件夹进行国内路网数据编译。上述技术方案的工作原理及有益效果:对解析数据进行数据划分处理,便于在执行路径规划前的搜索任务前的对第一二进制文件夹及第二二进制文件夹的有序调用,基于第一二进制文件夹及第二二进制文件夹才能高效的进行国内路网数据编译。在一实施例中,路径规划前的搜索任务的搜索过程为:如图2所示,图中有a,b,c,d,e5个顶点,有7条边将它们连通,以此图中的数据为例,第一数据结构为表一:(其中0代表无道路连接)表一第二数据结构为表二:表二基于第一数据结构和第二数据结构可以非常快速的查找节点之间的连接关系,例如要查找所有与顶点b连接的节点,则首先在表二中找到b对应的道路6,然后开始在表一中开始查询,得到表三:表三6be54基于表三,得到表三中存在顶点e,同时查询道路5,进行下一步查询,得到表四:表四5bd14基于表四,得到表四中存在顶点d,同时查询道路1,进行下一步查询,得到表五:表五1ab00基于表五,得到表五中存在顶点a,同时查询到道路0,道路0表示没有连接,结束查询。最终得到查询与顶点b连接的其他顶点为e,d,a。可以快速且准确的查询出顶点之间的连接信息,进而获得道路之间的连接关系,保证路径规划的准确性。根据本发明的一些实施例,在执行路径规划前的查询任务前,还包括创建查询捷径,包括:在顶点结构中选择一目标顶点,设置目标顶点的等级为所述顶点连接的所有道路的道路等级的最小值;获取与所述目标顶点相邻的两个顶点的等级;判断与所述目标顶点相邻的两个顶点的等级是否均大于目标顶点的等级;在确定与所述目标顶点相邻的两个顶点的等级均大于目标顶点的等级时,判断与所述目标顶点相邻的两个顶点间的最小权重路径是否经过所述目标顶点;在确定与所述目标顶点相邻的两个顶点间的最小权重路径经过所述目标顶点时,在所述目标顶点相邻的两个顶点间添加一条捷径;所述捷径包括目标顶点相邻的两个顶点间的道路及收缩掉目标顶点;在创建完成关于目标顶点的查询捷径后,依次循环顶点结构中的其他顶点,并创建关于其他顶点的查询捷径。上述技术方案的工作原理:在执行路径规划前的查询任务前,还包括创建查询捷径,包括:在顶点结构中选择一目标顶点,设置目标顶点的等级为所述顶点连接的所有道路的道路等级的最小值;获取与所述目标顶点相邻的两个顶点的等级;判断与所述目标顶点相邻的两个顶点的等级是否均大于目标顶点的等级;在确定与所述目标顶点相邻的两个顶点的等级均大于目标顶点的等级时,判断与所述目标顶点相邻的两个顶点间的最小权重路径是否经过所述目标顶点;在确定与所述目标顶点相邻的两个顶点间的最小权重路径经过所述目标顶点时,在所述目标顶点相邻的两个顶点间添加一条捷径;所述捷径包括目标顶点相邻的两个顶点间的道路及收缩掉目标顶点;在创建完成关于目标顶点的查询捷径后,依次循环顶点结构中的其他顶点,并创建关于其他顶点的查询捷径。上述技术方案的有益效果:优化搜索路径,收缩掉了不必要的顶点,减少路径规划时需要查询的顶点数,提高查询效率,使得搜索更加灵活。根据本发明的一些实施例,还包括:在创建完成对顶点结构中所有顶点的查询捷径后,得到新的顶点结构,对新的顶点结构再次创建捷径。上述技术方案的有益效果:所有顶点收缩过后,可根据需要再次对捷径使用相同方法进行收缩,创建捷径的捷径,以此类推,保证搜索捷径的不断优化,搜索顶点数量的不断减少,大大提高了搜索效率。根据本发明的一些实施例,每个所述顶点数据采用3个int,共12字节进行存储;每个所述道路数据采用6个int,共24字节进行存储。上述技术方案的有益效果:对顶点数据及道路数据进行安全存储,保证存储的合理性,避免因存储不合理导致的顶点数据及道路数据的丢失。根据本发明的一些实施例,所述属性信息采用1个字节进行存储,1个字节包括8位;所述字节的不同位分别存储所述道路数据对应的道路的通行方向、道路等级、道路限速及道路权重。上述技术方案的有益效果:保证对属性信息的安全存储。现有技术中将所述道路数据对应的道路的通行方向、道路等级、道路限速及道路权重分别占用一个字节进行存储,即占用四个字节进行存储,大大浪费了存储空间。基于一个字节的不同位分别存储所述道路数据对应的道路的通行方向、道路等级、道路限速及道路权重。每一位存储一个数据信息,避免了存储空间的浪费,提高了系统的快速响应性,调用数据更加快捷,提高用户体验。在一实施例中,在根据所述解析数据执行路径规划前的查询任务后,确定规划路径,对所述规划路径进行评价,计算得到评价值,并判断所述评价值是否小于预设评价值,在确定所述评价值小于预设评价值时,对所述规划路径进行路径优化处理;所述对所述规划路径进行评价,计算得到评价值,包括:计算规划路径的平滑度s:其中,ti+1为第i+1条道路的长度;ti为第i条道路的长度;wi+1为第i+1条道路的弯曲率;wi第i条道路的弯曲率;ui为第i条道路的平整系数;n为规划路径包括的道路的数量;t0为对规划路径的预估行驶时长;t1为对规划路径的起点与终点基于历史记录获取的平均行驶时长;根据规划路径的平滑度,计算得到评价值m:其中,m0为预设评价值;mi为第i条道路的道路等级对应的数值;m0为预设的道路等级的最大值。上述技术方案的工作原理及有益效果:在根据所述解析数据执行路径规划前的查询任务后,确定规划路径,对所述规划路径进行评价,计算得到评价值,并判断所述评价值是否小于预设评价值,在确定所述评价值小于预设评价值时,对所述规划路径进行路径优化处理,确定出最优的规划路径,满足用户的时间、道路舒适度等要求。提高用户体验。在计算道路的平滑度时,考虑相邻道路之间弯曲率、长度等使得计算出的平滑度更加准确,进而准确计算得到评价值。道路等级包括高速路、国道省道、城市一级路、城市二级路、城市三级路、乡村路及内部道路共7级;其中,道路等级关系为高速路>国道省道>城市一级路>城市二级路>城市三级路>乡村路>内部道路。示例的高速路的道路等级的数值为7;内部道路的道路等级的数值为1;即m0为预设的道路等级的最大值,为7;在进行路径规划时,优先选择高等级的道路,可以满足用户的时间、道路舒适度等要求,提高用户体验。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1