一种快速导航路径推测方法技术

技术编号:18300737 阅读:16 留言:0更新日期:2018-06-28 11:12
本发明专利技术公开了一种快速导航路径推测方法,通过预先计算某一范围内的路链行驶树,快速推测一定范围内两条路链之间的行驶路径。该方法首先生成路链行驶树;缓存查找启发式查找,输入要查找的起始路链和终止路链。在所有路链树map中查找以起始路链为根路链的路链树;判断终止路链是否在此路链树的子路链中,如果在,则从终点路链回溯到根路链,逆序,获取起始路链到终止路链之间的路径。如果终止路链不在此路链树的子路链中,则进入扩展查找模式。直到在某一层找到多条路径,选取其中最短的路径,回溯到原始的起始路链,将各段路链进行拼接,形成完整的路径。本发明专利技术取得了较好的时间和空间平衡。

A fast navigation path inference method

The invention discloses a fast navigation path inference method, which can quickly estimate the driving path between two Road chains in a certain range by calculating the road chain driving tree in a certain range. The method first generates road link running tree; cache lookup heuristic lookup, input the initial road chain to be searched and terminate the road chain. In all the road chain tree map, find the road chain tree with the starting chain as the root chain; determine whether the terminated chain is in the sub - chain of this road chain tree, if so, back from the terminal chain to the root and reverse order, to obtain the path between the starting and the end of the chain. If the chain is terminated not in the sub chain of the road chain tree, then the extended lookup mode is entered. Until a number of paths are found on one layer, the shortest path is selected, and the path chain is traced back to the original starting chain, and the whole path chain is spliced to form a complete path. The invention achieves better time and space balance.

【技术实现步骤摘要】
一种快速导航路径推测方法
本专利技术涉及一种路径推测的快速方法,通过预先计算某一范围内的路链行驶树,快速推测一定范围内两条路链之间的行驶路径的方法。
技术介绍
在公交GPS推测公交线路,及浮动车GPS推测路况拥堵情况等场景中,往往需要快速推测两个连续GPS点所经过的路链,由于采集频率的问题,两个连续GPS点中间往往跨越了较长距离,可能经过了多条路链。采用普通方法,需要实时进行计算,所需时间和内存都较大。为了解决上述问题,专利技术了快速导航路径推测方法,使用缓存技术,可快速、准确地推测出两个短时间内GPS点所经过的路链,提供给其它系统使用。
技术实现思路
针对现有技术中存在的上述问题,本专利技术提供一种快速导航路径推测的方法。为实现上述目的,本专利技术采用以下技术方案。一种快速导航路径的推测方法,从每条路链起始,生成500米范围内的路链行驶树(RouteTree),路链行驶树的每个节点(RouteLinkNode)即是一条路链;路链行驶树保存了从根路链到此路链的行驶距离,路链行驶树的父节点id及在此路链上的行驶方向,是否是叶子节点信息。该方法包括以下步骤:步骤1:路链行驶树生成;循环所有路链,针对其中一条路链,生成根节点。获取根节点所能行驶到的所有路链作为子路链,生成子节点,存入以路链id为key的子节点map中。循环所有子路链,获取每个子路链所能行驶到的路链作为二层子路链,如果存在通过不同子路链抵达的同一个二层子路链,则只保存距离短的路链。如果距离已超过500米范围,则不追加子路链。递归加载所有层级的子路链到子节点map,直到所有500米范围内能抵达的路链都加入到子节点map中。循环子节点map,生成子节点list和父节点list,子节点list和父节点list做集合相减,得到不是任何节点的父节点,即叶子节点list,设置到相应节点中。将此路链行驶树存入以根节点id为key的所有路链树map中。步骤2:缓存查找输入要查找的起始路链和终止路链。在所有路链树map中查找以起始路链为根路链的路链树。判断终止路链是否在此路链树的子路链中,如果在,则从终点路链回溯到根路链,逆序,获取起始路链到终止路链之间的路径。如果终止路链不在此路链树的子路链中,则进入扩展查找模式。步骤3:启发式查找如果终止路链不在此路链树的子路链中,则认为终止路链距起始路链较远,采用启发式算法思维,获取此路链树的所有叶子节点,筛选出直线距离终止路链最近的4个叶子节点。循环4个叶子节点,以每个叶子节点作为新的起始路链,查找是否有到终止路链的路径。递归进行查找,直到在某一层找到多条路径,选取其中最短的路径,回溯到原始的起始路链,将各段路链进行拼接,形成完整的路径。与现有技术相比,本专利技术具有以下明显的优势:在500米范围内,以武汉市为里,一个城市的所有路链行驶树大小在300MB左右,查找速度基本在常数时间复杂度范围内,在500米范围外,也能取得较短的查找时间,尤其是对于上文提到的背景应用,绝大多数连续的两个GPS点,距离不会超过500米,用此方法取得了较好的时间和空间平衡。具体实施方式下面结合具体实施方式对本专利技术做进一步说明。具体实施方式以武汉市公交行业综合业务管理系统中的公交线路管理平台为例。武汉市公交行业综合业务管理系统是武汉市公交办为管理武汉市1万余辆公交车、2万公交车司乘人员、700多条线路、近6000个站点即其它相关附属设施而专门建设的管理系统。主要的功能是显示全市公交线路、站点的分布情况,新增、修改公交线路,查看公交车的实时地理位置、按区域或公交线路、站点分析运营速度、驻站时间、准点率、兑现率、查找定位单个公交车、查看单个公交车历史轨迹、历史轨迹模糊搜索等。该系统由应用服务器、GIS服务器、数据库服务器组成。其中服务器型号为浪潮英信NF8460M4服务器,2个2.1GHzCPU,内存64G,300G存储。系统的主要数据,来源于数据中心发送的全市1万辆公交车GPS及刷卡数据。公交车GPS及刷卡数据由安装在公交车上的移动设备发出,一般一分钟发送3-4次。系统从行业数据中心接收到的GPS数据1500条左右每秒。本专利技术所述的方法包括以下步骤:步骤1:路链行驶树缓存生成,包括以下步骤:步骤1.1循环所有路链,针对其中一条路链,生成根节点。从地铁线路库中读取地铁线路基本信息。步骤1.2获取根节点所能行驶到的所有路链作为子路链,生成子节点,存入以路链id为key的子节点map中。步骤1.3循环所有子路链,获取每个子路链所能行驶到的路链作为二层子路链,如果存在通过不同子路链抵达的同一个二层子路链,则只保存距离较短的那个方向。如果距离已超过500米范围,则不追加此子路链。步骤1.4递归加载所有层级的子路链到子节点map,直到所有500米范围内能抵达的路链都加入到子节点map中。步骤1.5循环子节点map,生成子节点list和父节点list,两者做集合相减,得到不是任何节点的父节点,即叶子节点list,设置到相应节点中。步骤1.6将此路链行驶树存入以根节点id为key的所有路链树map中。步骤2:缓存查找,包括以下步骤:步骤2.1输入要查找的起始路链和终止路链。在所有路链树map中查找以起始路链为根路链的路链树。步骤2.2判断终止路链是否在此路链树的子路链中,如果在,则从终点路链回溯到根路链,逆序,获取起始路链到终止路链之间的路径。步骤2.3如果终止路链不在此路链树的子路链中,则进入扩展查找模式。步骤3:启发式查找包括以下步骤:步骤3.1获取此路链树的所有叶子节点步骤3.2计算所有叶子节点到终止路链的直线距离步骤3.3排序并筛选出直线距离最短的4个叶子节点。步骤3.4循环4个叶子节点,以每个叶子节点作为新的起始路链。步骤3.5递归进行查找,直到在某一层找到多条路径。步骤3.6选取其中最短的路径,回溯并拼接每一段路链,直到原始的起始路链,形成完整的路径。本文档来自技高网...

【技术保护点】
1.一种快速导航路径的推测方法,从每条路链起始,生成500米范围内的路链行驶树(RouteTree),路链行驶树的每个节点(RouteLinkNode)即是一条路链;路链行驶树保存了从根路链到此路链的行驶距离,路链行驶树的父节点id及在此路链上的行驶方向,是否是叶子节点信息;其特征在于:该方法包括以下步骤:步骤1:路链行驶树生成;循环所有路链,针对其中一条路链,生成根节点;获取根节点所能行驶到的所有路链作为子路链,生成子节点,存入以路链id为key的子节点map中;循环所有子路链,获取每个子路链所能行驶到的路链作为二层子路链,如果存在通过不同子路链抵达的同一个二层子路链,则只保存距离短的路链;如果距离已超过500米范围,则不追加子路链;递归加载所有层级的子路链到子节点map,直到所有500米范围内能抵达的路链都加入到子节点map中;循环子节点map,生成子节点list和父节点list,子节点list和父节点list做集合相减,得到不是任何节点的父节点,即叶子节点list,设置到相应节点中;将此路链行驶树存入以根节点id为key的所有路链树map中;步骤2:缓存查找输入要查找的起始路链和终止路链;在所有路链树map中查找以起始路链为根路链的路链树;判断终止路链是否在此路链树的子路链中,如果在,则从终点路链回溯到根路链,逆序,获取起始路链到终止路链之间的路径;如果终止路链不在此路链树的子路链中,则进入扩展查找模式;步骤3:启发式查找如果终止路链不在此路链树的子路链中,则认为终止路链距起始路链较远,采用启发式算法思维,获取此路链树的所有叶子节点,筛选出直线距离终止路链最近的4个叶子节点;循环4个叶子节点,以每个叶子节点作为新的起始路链,查找是否有到终止路链的路径;递归进行查找,直到在某一层找到多条路径,选取其中最短的路径,回溯到原始的起始路链,将各段路链进行拼接,形成完整的路径。...

【技术特征摘要】
1.一种快速导航路径的推测方法,从每条路链起始,生成500米范围内的路链行驶树(RouteTree),路链行驶树的每个节点(RouteLinkNode)即是一条路链;路链行驶树保存了从根路链到此路链的行驶距离,路链行驶树的父节点id及在此路链上的行驶方向,是否是叶子节点信息;其特征在于:该方法包括以下步骤:步骤1:路链行驶树生成;循环所有路链,针对其中一条路链,生成根节点;获取根节点所能行驶到的所有路链作为子路链,生成子节点,存入以路链id为key的子节点map中;循环所有子路链,获取每个子路链所能行驶到的路链作为二层子路链,如果存在通过不同子路链抵达的同一个二层子路链,则只保存距离短的路链;如果距离已超过500米范围,则不追加子路链;递归加载所有层级的子路链到子节点map,直到所有500米范围内能抵达的路链都加入到子节点map中;循环子节点map,生成子节点list和父节点list,子节...

【专利技术属性】
技术研发人员:孙传平陈智宏张永才
申请(专利权)人:北京通途永久科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1