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

文档序号:9784549阅读:来源:国知局
extNodes是否为空,若是,则返回步骤(24);若否,则选取邻接 点集合nextNodes中的一个道路结点为下一个搜索起始结点;
[0121] (27)根据选取的下一个搜索起始结点更新路径结点集合partialPath和起始标识 lastnode,清空邻接点集合nextNodes,并返回步骤(22)。
[0122] 本实施方式中,所述路径搜索模块30包括:
[0123] 搜索深度和长度判断单元31,用于在每次更新完路径结点集合partialPath后,在 路径结点集合partialPath的长度pathLength满足pathLength 2 3时,判断路径结点集合 partialPath中的元素是否满足以下任一条件,若是,则进入步骤(25),若否,则进入步骤 (22);
[0124] 条件1 :pathLength大于预设的路径搜索深度nPathNumLmt;
[0125] 条件2:路径结点集合partialPath中的路径结点顺次连接生成的路径的路径长度 大于预设的路径搜索长度nPathLenLmt。
[0126] 为了更好的理解本发明所述的方法,下面结合具体实施例对该方法进行进一步详 细说明。
[0127] 实施例
[0128] 首先,将需要进行路径分析的两个相邻定位点匹配到各自的道路上,并获取第一 道路的道路结点和第二道路的道路结点,选取第一道路的任一道路结点为起始点s,选取第 二道路的任一道路结点为终止点e,本实施例中,起始点s为图3中所示的道路结点1,终止点 e为图中所示的道路结点6。
[0129] 下面建立用于结点1和结点6之间路径搜索的结点集合nlndNodes,本实施例中,同 时满足与结点1的最短路径长度小于2km和与结点6的最短路径长度小于2km的道路结点,包 括图中所示的结点2、3、4、5、7,因此,本实施例中的结点集合11111(^ 〇(1^=[1,2,3,4,5,6, 7]〇
[0130]本实施例中,结点1和结点2互为邻接点,结点1和结点3互为邻接点,结点2和结点7 互为邻接点,结点3和结点4互为邻接点,结点5和结点6互为邻接点,结点6和结点7互为邻接 点,如图3中所示。结点1和结点2之间的路径长度为146m,结点1和结点2之间的路径长度为 146m,结点1和结点3之间的路径长度为563m,结点2和结点7之间的路径长度为963m,结点3 和结点4之间的路径长度为28m,结点5和结点6之间的路径长度为642m,结点6和结点7之间 的路径长度为50m。
[0131]因此,本实施例中,结点集合nlndNodes的邻接矩阵ADJ如下:
[0132]
[0133]完成结点集合nlndNodes的建立后,根据结点集合nlndNodes和邻接矩阵ADJ进行 结点1和结点6之间的路径搜索:
[0134] 第一次搜索,本实施例中,各参数如下:
[0135] startpoint = l ,endpoint = 6;nIndNodes = [l ,2,3,4,5,6,7];
[0136] partialPath= [ 1 ] ; lastnode = partialPath( last) = 1 ;
[0137] 以结点1开始进行路径搜索,即lastnode = 1,根据邻接矩阵得到结点1的邻接点为 2和3,nextNodes = [2,3],而结点2和结点3不是终止点,也没有作为过搜索起始结点,因此, 结点2和结点3均满足作为下一个搜索起始结点的条件,可以以nextNodes中的任一道路结 点为下一个新的搜索起始结点,本实施例中,以结点2作为下一个搜索起始结点。此时,路径 结点集合partialPath更新为partialPath = [ 1,2],lastnode = partialPath(last) = 2,并 清空邻接点集合nextNodes。
[0138] 第二次搜索时,各参数如下:
[0139] partialPath= [ 1,2]; lastnode = partialPath( last) = 2 ;
[OHO]以结点2继续进行路径搜索,根据邻接矩阵得到结点2的邻接点为1和7,nextNodes =[1,7],由于结点1存在于partialPath中,结点1不能作为下一个搜索起始结点,删除 nextNodes中的结点1,将邻接矩阵ADJ中2与结点1的路径长度设置为Mval,nextNodes = [7],结点7为下一个搜索起始结点。此时,路径结点集合partialPath更新为partialPath = [1,2,7],lastnode = partialPath (last) = 7,清空邻接点集合 nextNodes;邻接矩阵 ADJ更 新为:
[0141]
[0142]第三次搜索时,partialPath = [ 1,2,7]; lastnode = partialPath(last) = 7;
[0143]以结点7继续进行路径搜索,结点7的邻接点为2和6,nextNodes = [2,6],由于结点 6为终止点,因此,将partialPath中的道路结点与终止点6依次连接后得到起始点1和终止 点6之间的一条路径,完成一次路径搜索,该路径为 :1-247-6,删除nextNodes中的结点 6,并将邻接矩阵ADJ中结点7和结点6之间的路径长度设置为Mval,删除结点6的nextNodes =[2],而结点2存在于partialPath中,结点2不能作为下一个搜索起始结点,将结点2从邻 接点集合nextNodes中删除,并将邻接矩阵ADJ中结点7和结点2之间的路径长度设置为 Mval,删除结点2的nextNodes为空,此时选取前一个搜索起始结点即结点2为新的当前搜索 起始结点继续进行路径搜索,此时,路径结点集合partialPath更新为partialPath= [1, 2],lastnode = partialPath(last) =2,邻接矩阵ADJ更新为:
[0144]
[0145] 第四次搜索时,partialPath = [ 1,2]; lastnode = partialPath(last) = 2;
[0146] 以结点2继续进行路径搜索,根据更新后的ADJ得到结点2的邻接点不存在, nextNodes为空,此时以结点2之前的前一个搜索起始结点即结点1为搜索起始结点继续进 行路径搜索,此时,路径结点集合partialPath更新为partialPath = [ 1 ],lastnode = partialPath(last)=1〇
[0147] 第五次搜索时,partialPath = [ 1 ]; lastnode = partialPath( last) = 1;
[0148]以结点1进行路径搜索,根据上述更新后的ADJ得到结点1的邻接点为3, nextNodes =[3],结点3既不是终止点又不存在于partialPath中,以结点3为下一个搜索起始结点继 续进行路径搜索,此时,路径结点集合partialPath更新为partialPath = [ 1,3],lastnode = partialPath( last) =3,清空nextNodes;
[0149] 第六次搜索时,partialPath = [ 1,3]; lastnode = partialPath(last) = 3;
[0150] 以结点3进行路径搜索,根据上述更新后的ADJ得到结点3的邻接点为结点1和4, nextNodes = [1,4],结点 1 存在于partialPath中,更新nextNodes = [4],将邻接矩阵ADJ中 结点3和结点1之间的路径长度设置为Mval,以结点4为下一个搜索起始结点继续进行路径 搜索,此时,partialPath更新为partialPath= [ 1,3,4],lastnode = partialPath(last)= 4,清空nextNodes;更新后的邻接矩阵ADJ为:
[0151]
[0152] 第七次搜索时,partialPath = [ 1,3,4],lastnode = partialPath(last) = 4;
[0153] 以结点4进行路径搜索,根据上述更新后的ADJ得到结点4的邻接点为结点3, nextNodes = [3],而结点3存在于partialPath中,删除nextNodes中的结点3,将邻接矩阵 ADJ中结点4和结点3之间的路径长度设置为Mval,删除结点3之后nextNodes为空,选取结点 4之前的前一个搜索起始结点即结点3为新的当前搜索起始结点继续进行路径搜索,此时, partialPath更新为partialPath = [ 1,3],lastnode = partialPath(last) = 3;更新后的邻 接矩阵ADJ为:
[0154]
[0155] 第八次搜索时,partialPath = [ 1,3],lastnode = partialPath(last) = 3;
[0156] 以结点3进行路径搜索,更新后的ADJ得到结点3的邻接点不存在,nextNodes为空, 以结点3之前的前一个搜索起始结点即结点1为新的当前搜索起始结点继续进行路径搜索, 此时,partialPath 更新为partialPath= [ 1 ],lastnode = partialPath( last) = 1;
[0157] 第九次搜索时,partialPath = [ 1 ],lastnode = partialPath( last) = 1;
[0158] 以结点1进行路径搜索,由更新后的ADJ得到结点1的邻接点不存在,nextNodes为 空,且partialPath中只有起始点1,说明搜索返回到了起始点1,因此,路径搜索完毕。
[0159] 因此,结点1和结点6之间的路径搜索结果为路径1-2-7-6,结点1和6之间只有 一条路径。
[0160] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围 之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1. 一种浮动车车载终端的路径搜索方法,包括以下步骤: 步骤一、建立用于路径搜索的道路结点集合nlndNodes;建立结点集合nlndNodes的方 式包括: (11) 采集浮动车的卫星定位数据,选取相邻的两个定位点,并根据卫星定位数据将两 个定位点匹配到相应的道路,前一个定位点所在道路记为第一道路,后一个定位点所在道 路记为第二道路; (12) 获取第一道路和第二道路的道路结点信息,选取第一道路的任一道路结点为起始 点startpoint,选取第二道路的任一道路结点为终止点endpoint,将与起始点startpoint 的最短路径长度和与终止点endpoint的最短路径长度均小于预设的路径搜索长度 nPathLenLmt的道路结点添加到结点集合nlndNodes中,并建立结点集合nlndNodes的邻接 矩阵ADJ; 其中,邻接矩阵ADJ中的第p行第q列的元素为第p个道路结点与第q个道路结点间的路 径长度,
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1