一种浮动车车载终端的路径搜索方法及系统的制作方法_3

文档序号:9784549阅读:来源:国知局
tpoint外,还有其它道路结点,则对路径结点集合partialPath进行更新,删除当前搜 索起始结点,即删除路径结点集合partialPath中的最后一个元素,以更新后的路径结点集 合partialPath中的最后一个元素为新的搜索起始结点,即lastnode为更新后的 partialPath[ last ],并清空邻接点集合nextNodes后返回到步骤S22,根据新的搜索起始结 点lastnod继续进行路径搜索。
[0087]步骤S26:从邻接点集合nextNodes中选取下一个搜索起始结点;
[0088]当当前搜索起始结点的邻接点存在时,从当前搜索起始结点的邻接点集合 nextNodes中选取下一个搜索起始结点。本实施方式中,选取下一个搜索起始结点的具体方 式包括以下步骤:
[0089] (1 )遍历邻接点集合nextNodes中的道路结点nextNodes i,判断道路结点 nextNodes i是否为终止点endpoint,若是,则将nextNodes i从结点集合nextNodes中删除, 将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,将 路径结点集合partialPath中的道路结点顺次连接生成startpoint和终止点endpoint之间 的一条路径,进入步骤(2);若否,则进入步骤(2);
[0090] (2)判断nextNodesi是否在路径结点集合partialPath中,若是,则将nextNodesi 从邻接点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间 的路径长度设置为预设值Mval,进入步骤(3);若否,则进入步骤(3);
[0091] (3)判断邻接点集合nextNodes是否为空,若是,则返回步骤S24;若否,则选取邻接 点集合nextNodes中的一个道路结点为下一个搜索起始结点;
[0092]在从当前搜索起始结点的邻接点集合nextNodes中选取下一个搜索起始结点,对 于邻接点集合nextNodes的每一个元素均进行上述步骤(1)-(3)的判断筛选,对于邻接点集 合nextNodes的任一道路结点nextNodesi,如果该结点为终止点,说明完成了一次路径搜 索,路径结点集合partialPath中的所有道路结点顺次连接起来得到起始点startpoint和 终止点endpoint之间的一条路径,该道路结点nextNodesi不再作为搜索起始结点,将其从 邻接点集合nextNodes中删除,并将邻接矩阵ADJ中当前搜索起始结点lastnode与该 nextNodesi之间的路径长度设置为预设值Mval,以避免后续重复搜索,在以删除后的结点 集合nextNodes为基础进行进一步选取。对于删除后的结点集合nextNodes中的任一道路结 点nextNodesi,再判断该结点是否已经作为过搜索起始结点,即道路结点nextNodesi是否 存在于路径结点集合partialPath中,如果是,则将该道路结点nextNodesi也从邻接点集合 nextNodes中删除,同时将邻接矩阵ADJ中当前搜索起始结点lastnode与该nextNodesi之间 的路径长度设置为预设值Mval,避免后续进行重复搜索,如果删除后的邻接点集合 nextNodes中还有元素,贝lj从邻接点集合nextNodes中任选一道路结点作为新一个搜索起始 结点。
[0093]步骤S27:根据选取的下一个搜索起始结点更新路径结点集合partialPath和搜索 起始结点lastnode后返回步骤S22继续进行路径搜索。
[0094]在选取出新的搜索起始结点后,将新的搜索起始结点添加路径结点到集合 partialPath,为更新后的路径结点集合partialPath中的最后一个元素,此时,该新的搜索 起始结点为下一次路径搜索的搜索起始结点,即lastnode为更新后的路径结点集合 partialPath中的最后一个元素,清空邻接点集合nextNodes后返回到步骤S22中,以更新后 的搜索起始结点继续进行路径搜索。
[0095] 采用本实施方式中提供的上述路径搜索方法,以所述预设的路径搜索长度 nPathLenLmt为约束条件,实现了结点集合nlndNodes中起始点和终止点间所有可能路径的 搜索。
[0096] 本实施方式中,在每次更新完路径结点集合partialPath后,若路径结点集合 partialPath的长度pathLength满足pathLength 2 3,该路径搜索方法还包括:
[0097]判断路径结点集合partialPath中的元素是否满足以下任一条件,若是,贝lj进入步 骤S25,若否,则进入步骤S22;
[0098] 条件1 :pathLength大于预设的路径搜索深度nPathNumLmt;
[0099] 条件2:路径结点集合partialPath中的路径结点顺次连接生成的路径的路径长度 大于预设的路径搜索长度nPathLenLmt。
[0100]所述路径搜索深度nPathNumLmt用于约束每次路径搜索时,组成路径的道路结点 的个数,即限定构成起始点和终止点之间路径的道路数据不超过20个,路径搜索长度 nPathLenLmt用于约束起始点和终止点之间的路径长度,如果组成路径的道路结点的个数 超过nPathNumLmt或者路径长度大于nPathLenLmt,则停止当前搜索,选择新的搜索起始结 点搜索。
[0101] 路径搜索深度nPathNumLmt和路径搜索长度nPathLenLmt均可以根据实际需要进 行设置,本实施方式中,所述路径搜索深度nPathNumLmt = 20;所述路径搜索长度 nPathLenLmt = 2km 〇
[0102] 本实施方式所提供的路径搜索方法,根据浮动车的实际运行情况,以浮动车前后 两个定位点之间的距离和构成两个定位点的路径的道路结点的个数作为约束条件,实现了 相邻两个定位点之间所有可能路径的搜索,减少了搜索空间,提高了搜索效率,为城市道路 拥堵分析提供了数据基础。且该方法可以离线进行,可以事先将任意两条道路道路结点的 所有路径提前计算,而在车辆匹配到道路后直接使用,从而提高拥堵分析的计算效率。该方 法能解决大间隔定位导致的定位路段不连续的问题,为城市道路拥堵收费提供全面的定位 技术支持。
[0103] 基于图1中所示的路径搜索方法,本实施方式中还提供了一种车载终端的路径搜 索系统,如图2所示,该系统包括道路结点集合建立模块10、起止点关系判断模块20和路径 搜索模块30。
[0104] 道路结点集合建立模块10,用于建立用于路径搜索的道路结点集合nlndNodes;该 丰旲块:
[0105] 定位点道路匹配单元11,用于采集浮动车的卫星定位数据,选取相邻的两个定位 点,并根据卫星定位数据将两个定位点匹配到相应的道路,前一个定位点所在道路记为第 一道路,后一个定位点所在道路记为第二道路;
[0106] 结点集合与邻接矩阵建立单元12,用于获取第一道路和第二道路的道路结点信 息,选取第一道路的任一道路结点为起始点startpoint,选取第二道路的任一道路结点为 终止点endpoint,将与起始点startpoint的最短路径长度和与终止点endpoint的最短路径 长度均小于预设的路径搜索长度nPathLenLmt的道路结点添加到结点集合nlndNodes中,并 建立结点集合nlndNodes的邻接矩阵ADJ;
[0107] 其中,邻接矩阵ADJ中的第p行第q列的元素为第p个道路结点与第q个道路结点间 的路径长度,不互为邻接点的两个道路结点之间的路径长度设置为预设值Mval。
[0108]本实施方式中,所述路径搜索长度nPathLenLmt根据浮动车时速和浮动车的定位 时间间隔确定;路径搜索长度=浮动车时速X定位时间间隔。
[0109]起止点关系判断模块20,用于在路径搜索模块进行起始点startpoint和终止点 endpoint之间的路径搜索之前,根据第一道路和第二道路的经炜度信息判断两条道路是否 直接相连,若是,则确定起始点startpoint和终止点endpoint之间的唯一路径为起始点 startpoint和终止点endpoint连接成的路径;若否,贝lj进入路径搜索模块;两条道路直接相 连是指两条道路为一条道路且起始点与终止点之间的路径不存在其它道路结点。
[0110]路径搜索模块30,用于根据所述结点集合nlndNodes和其邻接矩阵ADJ进行起始点 startpoint和终止点endpoint之间的路径搜索,进行路径搜索的方式为:
[0111 ] (21)设置路径结点集合partialPath,并记录路径结点集合partialPath的长度 pathLength,集合中的元素为按搜索顺序存放的每次路径搜索时的搜索起始结点; pathLength是指路径结点集合partialPath中元素的个数,初始化时,partialPath[l]= startpoint,pathLength = 1;
[0112] 设置每次搜索时的搜索起始结点为las tnode,las tnode = partialPath [last], partialPath [last]表示路径结点集合partialPath的最后一个元素;初始化时,lastnode = startpoint ;
[0113] (22)根据邻接矩阵ADJ获取搜索起始结点lastnode的邻接点,将得到的邻接点记 录在邻接点集合nextNodes中;
[0114] (23)判断邻接点集合nextNodes是否为空,若是,则进入步骤(24),若否,则进入步 骤(26);
[0115] (24)判断路径结点集合partialPath中的元素是否只有起始点startpoint,若是, 则路径搜索搜索回到起始点,路径搜索完毕;若否,则进入步骤(25);
[0116] (25)删除路径结点集合partialPath中partialPath [last],更新路径结点集合 partialPath和搜索起始结点lastnode,并返回步骤(22);
[0117] (26)从邻接点集合nextNodes中选取下一个搜索起始道路结点,选取方式为:
[0118] 1 )遍历邻接点集合nextNodes中的道路结点nextNodes i,判断道路结点 nextNodes i是否为终止点endpoint,若是,则将nextNodes i从结点集合nextNodes中删除, 将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,将 路径结点集合partialPath中的道路结点顺次连接生成startpoint和终止点endpoint之间 的一条路径,进入步骤2);若否,则进入步骤2);
[0119] 2)判断nextNodesi是否在路径结点集合partialPath中,若是,则将nextNodesi从 邻接点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的 路径长度设置为预设值Mval,进入步骤3);若否,则进入步骤3);
[0120] 3)判断邻接点集合n
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1