基于海量电子地图的路网连通性的检测方法及装置的制作方法

文档序号:6030480阅读:187来源:国知局

专利名称::基于海量电子地图的路网连通性的检测方法及装置的制作方法
技术领域
:本发明涉及导航
技术领域
,尤其涉及一种基于海量电子地图的路网连通性的检测方法及装置。
背景技术
:路径规划是智能交通系统研究的重要内容,可在车辆行驶前或行驶过程中为驾驶员提供从起始点到目标点的一条或若干条路线,用来对驾驶员的行车进行导航。在电子地图路径规划中需要根据路况信息进行数据编译,并且在编译过程中,如果路网中存在孤岛道路群,则会对各种路径算法的效率造成不同程度的损失。因此路网连通性的检测,对于电子地图供应商来说,是衡量数据优劣的重要标准之一。对路网连通性的检测实际上就是查找出路网中的强连通分量,现有的强连通分量的计算算法有Kosaraju算法。在Kosaraju算法中为了查找有向图中的强连通分量,首先把原图逆序(逆图)然后运行DFS(D印thFirstSearch,深度优先搜索)遍历,计算每个顶点访问结束时间编号(时间戳或者理解成后序遍历的编号)。把计算出来的编号按重大到小排序,接着在原图上运行DFS遍历,由此可知在Kosaraju算法中需要进行两次DFS遍历,即一次正向遍历,一次反向遍历。在实现本发明的过程中,发现现有技术中至少存在如下问题1)在现有的Kosaraju算法中由于需要进行两次DFS遍历,因此降低了检测海量路网信息连通性的效率。2)现有的连通检测算法无法解决线性拓扑禁止策略问题。
发明内容为了解决上述问题,本发明的目的是提供一种基于海量电子地图的路网连通性的检测方法及装置,提高了检测海量的路网信息连通性的效率和准确度。为了达到上述目的,本发明提供一种基于海量电子地图的路网连通性的检测方法,所述检测方法包括根据所述路网中道路的交通流方向,将所述路网构造为路网的逻辑拓扑图;在所述路网的逻辑拓扑图中任意选取一条道路设置为起始道路;按照所述路网中起始道路的交通流方向,在所述路网的逻辑拓扑图中读取出相互连接的道路;检测被读取出的道路是否预先设置有交通规制信息,若没有,则按照所述交通流方向继续读取所述路网的逻辑拓扑图中的其他道路,直到按照所述交通流方向返回到所述起始道路。优选地,当检测出被读取出的道路预先设置有交通规制信息时,所述检测方法还包括按照交通流的方向逆向退回到与该条道路连接的其他道路上。3优选地,所述根据所述路网中所有道路的交通流方向将所述路网构造为逻辑拓扑图的步骤为获取所述路网中所有道路的连接关系,根据所述连接关系构造出路网的物理拓扑图;获取所述所有道路的交通流方向,根据所述交通流方向将所述路网的物理拓扑图构造为路网的逻辑拓扑图。优选地,所述交通规制信息包括两条道路之间的交规,或者线性交规。本发明还提供一种基于海量电子地图的路网连通性的检测装置,所述检测装置包括构造模块,用于根据所述路网中的道路的交通流方向,将所述路网构造为路网的逻辑拓扑图;设置模块,用于在所述路网的逻辑拓扑图中任意选取一条道路设置为起始道路;读取模块,用于按照所述路网中起始道路的交通流方向,在所述路网的逻辑拓扑图中读取出相互连接的道路;检测模块,用于检测被读取出的道路是否预先设置有交通规制信息;若没有,则按照所述交通流方向继续读取所述路网的逻辑拓扑图中的其他道路,直到按照所述交通流方向返回到所述起始道路。优选地,所述构造模块包括第一构造单元,用于获取所述路网中所有道路的连接关系,根据所述连接关系构造出路网的物理拓扑图;第二构造单元,用于获取所述所有道路的交通流方向,根据所述交通流方向将所述路网的物理拓扑图构造为路网的逻辑拓扑图。优选地,所述交通规制信息包括两条道路之间的交规,或者线性交规。上述技术方案中的至少一个技术方案具有如下有益效果通过只利用一次深度优先遍历即可找出有向图中的强连通分量,可在不需要人工干预的情况下,自行分析了路网中的禁止策略,高效的处理了海量路网信息连通性的检测。图1为本发明实施例中基于海量电子地图的路网连通性的检测方法流程图;图2为本发明实施例中路网的逻辑拓扑图;图3为本发明实施例中基于海量电子地图的路网连通性的检测装置框图。具体实施例方式为了使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明实施例做进一步详细地说明。在此,本发明的示意性实施例及说明用于解释本发明,但并不作为对本发明的限定。如图1所示,为本发明实施例中基于电子地图的路网连通性的检测方法流程图,包括如下步骤步骤101、获取路网中所有道路的连接关系,根据该连接关系构造出路网的物理拓扑图;在本实施例中,路网的物理拓扑图可理解为根据网路中道路的实际路况,构建出来的无向图。也就是从电子地图数据库中提取出没有标注交通流方向的道路,然后根据该道路的实际连接情况,构造出路网的物理拓扑图。步骤102、获取所有道路的交通流方向,根据交通流方向将路网的物理拓扑图构造为路网的逻辑拓扑图;在本实施例中,路网的逻辑拓扑图可理解为在路网的物理拓扑图上标注出交通流方向,从而构建带有方向的路网的逻辑拓扑图。步骤103、在路网的逻辑拓扑图中任意选取一条道路设置为起始道路;步骤104、按照路网中的起始道路的交通流方向,在路网的逻辑拓扑图中读取出相互连接的道路;步骤105、检测被读取出的道路是否预先设置有交通规制信息,若有,则执行步骤106;否则执行步骤107;上述交通规制信息不仅包括两条线之间的交规(例如线A不能到线B),而且还包括了线性交规(例如线A经过线B和线C,不能到达线D),所以本实施例可针对各种不同的数据源进行路网连通性检查。在本步骤中也就是检测能否从起始道路按照交通流的方向到达逻辑拓扑图中任何一个道路。步骤106、按照交通流的方向逆向退回到与该条道路连接的其他道路上,然后执行步骤107;由于读取出的道路设置有交通管制信息,因此可按照交通流的方向逆向退回到之前读取出的其他道路上,然后在按照交通流方向和连接关系,读取出其他的道路。步骤107、按照交通流方向继续读取路网的逻辑拓扑图中的其他道路,然后返回到步骤105,直到按照交通流方向返回到起始道路。也就是可通过判断读取的道路是否为起始道路,若是则说明按照交通流方向能够从返回到起始道路,也就是获得了该有向图的一个强连通分量。在本实施例中,可重复执行步骤103步骤107,直到遍历路网中所有的道路,此时用户就可获得该路网中的所有强连通分量。通过只利用一次深度优先遍历即可找出有向图中的强连通分量,可在不需要人工干预的情况下,高效的处理了海量路网信息连通性的检测。为了便于理解本发明实施例的方法流程,下面通过一具体的实施例来详细说明。假设一电子地图的路网包括Linel、Line2、Line3、Line4、Line5、Line6、Line7、Line8和Line9共九条道路,并且根据该每条道路的交通流方向构建出该路网的逻辑拓扑图。参见图2,为本发明实施例中的路网的逻辑拓扑图,图中的箭头表示该道路的交通流方向。基于图2中道路是否邻接和该道路的交通流方向建立一道路的邻接表,该邻接表用于记录道路之间的连通关系。参见表1为本实施例中建立的邻接表结构图。表1<table>tableseeoriginaldocumentpage5</column></row><table><table>tableseeoriginaldocumentpage6</column></row><table>以表l中记载的Line1—Line2为例,意思为可按照Linel的交通流方向,从Linel到Line2上,两者之间是连通的,且Line2可称为Linel的退出线。表1中记载的其他的情况与上述Linel—Line2的含义类似,在此不再敷述。在检测路网的连通性时,由于还需要考虑各种交通规制信息。因此,在本实施例中还设置有一交通规制表,用于记录该路网中的交通规制信息,该交通规制信息包括两条线之间的交规(例如LineA不能到LineB上),或者还包括线性交规(例如LineA经过LineB和LineC,不能到达LineD)。在本实施例中该交通规制信息记录的方式为Line8—Line7—Line6,表示从Line6能够到Line7,但是不能到Line8。该记录的方式是将线性交通规制逆序记录,以退出的Line8为Key值。当判断Line8入栈时,则继续判断匹配,当能够与该交通规制信息匹配时,则将Line8退出栈,读入其他的Line。当然还可设置其他交通规制信息。在本实施例中需要设置用于记录路网的逻辑拓扑图中道路的相关信息的数据表,从而使得设计人员通过一次DFS遍历就能探索出路网中的强连通分量,该表的结构可参见表2。表2<table>tableseeoriginaldocumentpage6</column></row><table>其中,Stack,表示算法部分进行DFS遍历的栈空间;Used表示算法部分用来记载目标Line在栈中的遍历状态符。当该Line已被遍历过时,可将Used标记为True,而当该Line未被遍历过时,可将Used标记为False;Live表示算法部分用来记载目标Line在栈中的生命周期状态符。当Line在栈中时,可将Live标记为True,当Line出栈后,可将该Line标记为Fasle;Level表示算法部分用来记载目标Line深度遍历的时间戳,例如可将第一个入栈Line的Level标记为O,然后其他Line的Level进行累加Pos(Position)表示算法部分用来记载目标Line在栈中的位置,例如在本实施例中可用09或者其他数字来表示该位置。结合逻辑拓扑图(图2)、数据表(表2)和预先设置的交通规制信息来介绍本发明的路网连通性的检测方法,具体步骤如下首先,将表2中所有Line的遍历状态符(Used)和生命周期状态符(Live)的初始值标记为False,参见表3;表3StackUsedLine1Line2Line3Line4Line5Line6Line7Line8Line9FalseFalseFalseFalseFalseFalseFalseFalseFalseliveLine1Line2Line3Line4Line5Line6Line7Line8Line9FalseFalseFalseFalseFalseFalseFalseFalseFalsePosLine1Line2Line3Line4Line5Line6Line7Line8Line9LevelLine1Line2Line3Line4Line5Line6Line7Line8乙ine9也就是可在图2中任意选取一条道路设置为起始道路,例如选取Linel为起始道路,并将该Linel的是否参与遍历的状态符标记为True,从而在下次选取起始道路时就不会再考虑Linel了。在本实施例中,路网的逻辑拓扑图中所有的道路的是否参与遍历的状态符标记为False。True表示该条道路已被遍历过,而False表示该条道路还没有被遍历,一般将False标记为是否参与遍历的状态符的初始值。下面仅介绍选取Linel为起始道路的来检测该路网的连通性的情形,其他类似的情形在此不再敷述。以图2中的Linel首先入栈为例进行说明;l)Linel入栈;Stack1UsedLine1Line2Line3Line4Line5Line6Line7Line8Line9TrueFalseFalseFalseFalseFalseFalseFalseFalseLiveLine1Line2Line3Cine4Line5Line6Line7Line8Line9TrueFalseFalseFalseFalseFalseFalseFalseFalsePosLine1Line2Line3Line4Line5Line6Line7Line8Line90LevelLine1Line2Line3Line4Line5Line6Line7Line8Line902)Linel的退出线Line2入栈7<table>tableseeoriginaldocumentpage8</column></row><table>6)Line4的退出线Line5入栈Stack12345UsedLine1Line2Line3Line4Line5Line6Une7Line8Line9TrueTrueTrueTrueTrueFalseFalseFalseFalseUveLine1Line2Line3Line4Line5Line6Line7Line8Line9TrueTrueFalseTrueTrueFalseFalseFalseFalsePosLine1Line2Line3Line4Line5Line6Line7Line8Line901234LevelLine1Line2Line3Line4Line5Line6Line7Line8Line90更新O2347)Line5的退出线Line6入栈Stack123456UsedLine1Line2Line3Line4Line5Line6Line7Line8Line9TrueTrueTrueTrueTrueTrueFalseFalseFalseLiveLine1Line2Line3Line4Line5Line6Line7Line8Line9TrueTrueTrueTrueTrueTrueFalseFalseFalsePosLine1Line2Line3Line4Line5Line6Une7Line8Line9012345LevelLine1Line2Line3Line4Line5Line6Une7Line8Line90更新O23458)Line6的退出线Line7入栈Stack1234567UsedLine1Line2Line3Line4Line5Line6Line7Line8Line9TrueTrueTrueTrueTrueTrueTrueFalseFalseLiveLine1Line2Line3Line4Line5Line6Line7Line8Line9TrueTrueTrueTrueTrueTrueTrueFalseFalsePosLine1Line2Line3Line4Line5Line6Line7Line8Line90123456Line1Line2Line3Line4Line5Line6Line7Line8Line90更新O234569)Line7的退出线Line8入栈,在交通规制信息中发现Line8的限制信息,栈中逆向匹配成功,结束Line8的遍历,继续Line7的遍历,Line7已无退出线,退栈;开始Line6的遍历,Line6已无退出线,退栈;开始Line5的遍历,Line5还有Line9和Line2可以遍历(可通过表l判断出)9<table>tableseeoriginaldocumentpage10</column></row><table>10)开始Line5的退出线Line9遍历,Line9入栈<table>tableseeoriginaldocumentpage10</column></row><table>11)Line9的退出线Line8遍历,发现Line8的交通规制信息,开始逆向匹配,匹配失败,Line8入栈12)Line8的退出线Linel遍历,Live=True,更新level<table>tableseeoriginaldocumentpage10</column></row><table>后续遍历依次继续发现所有都将遍历完毕,本次DFS结束,开始导出结果为Graph(Line1、Line2、Line3、Line4、Line5、Line8、Line9)为一个强连通分量。为了实现上述的方法实施例,本发明的其他实施例还提供了一种基于海量电子地图的路网连通性的检测装置。另需首先说明的是,由于下述的实施例是为实现前述的方法实施例,故该装置都是为了实现前述方法的各步骤而设,但本发明并不限于下述的实施例,任何可实现上述方法装置都应包含于本发明的保护范围。并且在下面的描述中,与前述方法相同的内容在此省略,以节约篇幅。参见图3,为本发明实施例中基于海量电子地图的路网连通性的检测装置,由图中可知,检测装置30包括构造模块31,用于根据所述路网中的道路的交通流方向,将所述路网构造为路网的逻辑拓扑图;设置模块32,用于在所述路网的逻辑拓扑图中任意选取一条道路设置为起始道路;读取模块33,用于按照所述路网中起始道路的交通流方向,在所述路网的逻辑拓扑图中读取出相互连接的道路;检测模块34,用于检测被读取出的道路是否预先设置有交通规制信息;若没有,则按照所述交通流方向继续读取所述路网的逻辑拓扑图中的其他道路,直到按照所述交通流方向返回到所述起始道路。在本发明的另一实施例中,构造模块31包括第一构造单元,用于获取所述路网中所有道路的连接关系,根据所述连接关系构造出路网的物理拓扑图;第二构造单元,用于获取所述所有道路的交通流方向,根据所述交通流方向将所述路网的物理拓扑图构造为路网的逻辑拓扑图。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。1权利要求一种基于海量电子地图的路网连通性的检测方法,其特征在于,所述检测方法包括根据所述路网中道路的交通流方向,将所述路网构造为路网的逻辑拓扑图;在所述路网的逻辑拓扑图中任意选取一条道路设置为起始道路;按照所述路网中起始道路的交通流方向,在所述路网的逻辑拓扑图中读取出相互连接的道路;检测被读取出的道路是否预先设置有交通规制信息,若没有,则按照所述交通流方向继续读取所述路网的逻辑拓扑图中的其他道路,直到按照所述交通流方向返回到所述起始道路。2.根据权利要求1所述的检测方法,其特征在于,当检测出被读取出的道路预先设置有交通规制信息时,所述检测方法还包括按照交通流的方向逆向退回到与该条道路连接的其他道路上。3.根据权利要求1所述的检测方法,其特征在于,所述根据所述路网中所有道路的交通流方向将所述路网构造为逻辑拓扑图的步骤为获取所述路网中所有道路的连接关系,根据所述连接关系构造出路网的物理拓扑图;获取所述所有道路的交通流方向,根据所述交通流方向将所述路网的物理拓扑图构造为路网的逻辑拓扑图。4.根据权利要求1所述的检测方法,其特征在于,所述交通规制信息包括两条道路之间的交规,或者线性交规。5.—种基于海量电子地图的路网连通性的检测装置,其特征在于,所述检测装置包括构造模块,用于根据所述路网中的道路的交通流方向,将所述路网构造为路网的逻辑拓扑图;设置模块,用于在所述路网的逻辑拓扑图中任意选取一条道路设置为起始道路;读取模块,用于按照所述路网中起始道路的交通流方向,在所述路网的逻辑拓扑图中读取出相互连接的道路;检测模块,用于检测被读取出的道路是否预先设置有交通规制信息;若没有,则按照所述交通流方向继续读取所述路网的逻辑拓扑图中的其他道路,直到按照所述交通流方向返回到所述起始道路。6.根据权利要求5所述的检测装置,其特征在于,所述构造模块包括第一构造单元,用于获取所述路网中所有道路的连接关系,根据所述连接关系构造出路网的物理拓扑图;第二构造单元,用于获取所述所有道路的交通流方向,根据所述交通流方向将所述路网的物理拓扑图构造为路网的逻辑拓扑图。7.根据权利要求5所述的检测装置,其特征在于,所述交通规制信息包括两条道路之间的交规,或者线性交规。全文摘要本发明公开了一种基于海量电子地图的路网连通性的检测方法及装置,属于导航
技术领域
,所述检测方法包括根据所述路网中道路的交通流方向,将所述路网构造为路网的逻辑拓扑图;在所述路网的逻辑拓扑图中任意选取一条道路设置为起始道路;按照所述路网中起始道路的交通流方向,在所述路网的逻辑拓扑图中读取出相互连接的道路;检测被读取出的道路是否预先设置有交通规制信息,若没有,则按照所述交通流方向继续读取所述路网的逻辑拓扑图中的其他道路,直到按照所述交通流方向返回到所述起始道路,提高了检测海量的路网信息连通性的效率。文档编号G01C21/34GK101750089SQ20081023937公开日2010年6月23日申请日期2008年12月11日优先权日2008年12月11日发明者刘盛理,徐晋辉,石清华申请人:北京四维图新科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1