CN105547316A - 一种浮动车车载终端的路径搜索方法及*** - Google Patents

一种浮动车车载终端的路径搜索方法及*** Download PDF

Info

Publication number
CN105547316A
CN105547316A CN201510999191.1A CN201510999191A CN105547316A CN 105547316 A CN105547316 A CN 105547316A CN 201510999191 A CN201510999191 A CN 201510999191A CN 105547316 A CN105547316 A CN 105547316A
Authority
CN
China
Prior art keywords
node
road
path
partialpath
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510999191.1A
Other languages
English (en)
Other versions
CN105547316B (zh
Inventor
余振华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing WatchSmart Technologies Co Ltd
Original Assignee
Beijing WatchSmart Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing WatchSmart Technologies Co Ltd filed Critical Beijing WatchSmart Technologies Co Ltd
Priority to CN201510999191.1A priority Critical patent/CN105547316B/zh
Publication of CN105547316A publication Critical patent/CN105547316A/zh
Application granted granted Critical
Publication of CN105547316B publication Critical patent/CN105547316B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3446Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Navigation (AREA)

Abstract

本发明公开了一种浮动车车载终端的路径搜索方法及***,属于智能交通车载定位技术领域。该方法包括:首先将浮动车的前后两个定位点分别匹配到所在的两条道路上,各选取两条道路一个道路结点分别作为起始点和终止点,根据道路结点与起始点和终止点的最短路径关系建立用于起始点和终止点之间路径搜索的结点集合,然后根据结点集合和结点集合的邻接矩阵进行起始点和终止点之间的路径搜索。采用本发明所提供的方法及***,能够实现了相邻两个定位点之间所有可能路径的搜索,减少了搜索空间,提高了搜索效率,为城市道路拥堵分析提供了数据基础。

Description

一种浮动车车载终端的路径搜索方法及***
技术领域
本发明涉及智能交通车载定位技术领域,具体涉及一种基于深度优先搜索的浮动车车载终端的路径搜索方法及***。
背景技术
基于浮动车卫星定位数据的城市道路交通拥堵分析技术被认为是实现先进的交通诱导的重要途径,基于浮动车卫星定位数据交通参数检测技术作为一种新的检测方式,如何提高其检测性能是目前的核心问题。城市道路拥堵分析主要包括浮动车卫星定位数据获取、地图匹配、路径搜索、路段交通状态及路网拥堵计算、交通决策等内容。
卫星定位***包括美国的GPS全球定位***、中国的北斗卫星定位***,俄罗斯的格洛纳斯全球卫星导航***(GLOBALNAVIGATIONSATELLITESYSTEM,简称:GLONASS)和欧洲的伽利略卫星定位***。卫星定位***能够提供实时、全天候和全球性的导航服务,可以提供车辆定位、行驶路线监控等功能,具有的全天候、高精度和自动测量的特点,已经融入了国民经济建设、国防建设和社会发展的各个应用领域。随着城市车辆保有量的急剧增加,城市道路拥挤不堪,交通事故频频发生,把卫星定位***用于城市道路拥堵收费,将显著提高城市道路运营的效率和增加行车的安全性。
浮动车数据采集是以交通信息获取为目的,不同于车载端每秒采集一次GPS数据,由于考虑经济因素,以及后台计算机数据处理的实时性的考虑,GPS数据采集的周期一般都在20-60s,导致周期内车辆行驶距离较长,GPS定位点之间相差好几个路段,从而需要搜索GPS定位点所在道路之间可能存在的路径。本发明正是针对该问题而提出了一种浮动车车载终端的路径搜索方法及***。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种能够得到车载终端的相邻两个定位点之间所有可能路径的一种车载终端的路径搜索方法及***。
为实现上述目的,本发明采用的技术方案如下:
一种浮动车车载终端的路径搜索方法,包括以下步骤:
步骤一、建立用于路径搜索的道路结点集合nIndNodes;建立结点集合nIndNodes的方式包括:
(11)采集浮动车的卫星定位数据,选取相邻的两个定位点,并根据卫星定位数据将两个定位点匹配到相应的道路,前一个定位点所在道路记为第一道路,后一个定位点所在道路记为第二道路;
(12)获取第一道路和第二道路的道路结点信息,选取第一道路的任一道路结点为起始点startpoint,选取第二道路的任一道路结点为终止点endpoint,将与起始点startpoint的最短路径长度和与终止点endpoint的最短路径长度均小于预设的路径搜索长度nPathLenLmt的道路结点添加到结点集合nIndNodes中,并建立结点集合nIndNodes的邻接矩阵ADJ;
其中,邻接矩阵ADJ中的第p行第q列的元素为第p个道路结点与第q个道路结点间的路径长度,不互为邻接点的两个道路结点之间的路径长度设置为预设值Mval;
步骤二、根据所述结点集合nIndNodes和其邻接矩阵ADJ进行起始点startpoint和终止点endpoint之间的路径搜索。
进一步,如上所述的一种浮动车车载终端的路径搜索方法,其特征在于:步骤二中,进行起始点startpoint和终止点endpoint之间路径搜索的方式包括:
(21)设置路径结点集合partialPath,并记录路径结点集合partialPath的长度pathLength,集合中的元素为按搜索顺序存放的每次路径搜索时的搜索起始结点;pathLength是指路径结点集合partialPath中元素的个数,初始化时,partialPath[1]=startpoint,pathLength=1;
设置每次搜索时的搜索起始结点为lastnode,lastnode=partialPath[last],partialPath[last]表示路径结点集合partialPath的最后一个元素;初始化时,lastnode=startpoint;
(22)根据邻接矩阵ADJ获取搜索起始结点lastnode的邻接点,将得到的邻接点记录在邻接点集合nextNodes中;
(23)判断邻接点集合nextNodes是否为空,若是,则进入步骤(24),若否,则进入步骤(26);
(24)判断路径结点集合partialPath中的元素是否只有起始点startpoint,若是,则路径搜索搜索回到起始点,路径搜索完毕;若否,则进入步骤(25);
(25)删除路径结点集合partialPath中partialPath[last],更新路径结点集合partialPath和搜索起始结点lastnode,并返回步骤(22);
(26)从邻接点集合nextNodes中选取下一个搜索起始道路结点,选取方式为:
1)遍历邻接点集合nextNodes中的道路结点nextNodesi,判断道路结点nextNodesi是否为终止点endpoint,若是,则将nextNodesi从结点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,将路径结点集合partialPath中的道路结点顺次连接生成startpoint和终止点endpoint之间的一条路径,进入步骤2);若否,则进入步骤2);
2)判断nextNodesi是否在路径结点集合partialPath中,若是,则将nextNodesi从邻接点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,进入步骤3);若否,则进入步骤3);
3)判断邻接点集合nextNodes是否为空,若是,则返回步骤(24);若否,则选取邻接点集合nextNodes中的一个道路结点为下一个搜索起始结点;
(27)根据选取的下一个搜索起始结点更新路径结点集合partialPath和起始标识lastnode,清空邻接点集合nextNodes,并返回步骤(22)。
进一步,如上所述的一种浮动车车载终端的路径搜索方法,步骤二中,在进行起始点startpoint和终止点endpoint之间的路径搜索之前,还包括:
根据第一道路和第二道路的经纬度信息判断两条道路是否直接相连,若是,则确定起始点startpoint和终止点endpoint之间的唯一路径为起始点startpoint和终止点endpoint连接成的路径;若否,则进入步骤(21);两条道路直接相连是指两条道路为一条道路且起始点与终止点之间的路径不存在其它道路结点。
进一步,如上所述的一种浮动车车载终端的路径搜索方法,在每次更新完路径结点集合partialPath后,若路径结点集合partialPath的长度pathLength满足pathLength≥3,该方法还包括:
判断路径结点集合partialPath中的元素是否满足以下任一条件,若是,则进入步骤(25),若否,则进入步骤(22);
条件1:pathLength大于预设的路径搜索深度nPathNumLmt;
条件2:路径结点集合partialPath中的路径结点顺次连接生成的路径的路径长度大于预设的路径搜索长度nPathLenLmt。
进一步,如上所述的一种浮动车车载终端的路径搜索方法,所述路径搜索长度nPathLenLmt根据浮动车时速和浮动车的定位时间间隔确定;路径搜索长度=浮动车时速×定位时间间隔。
进一步,如上所述的一种浮动车车载终端的路径搜索方法,所述路径搜索深度nPathNumLmt=20;所述路径搜索长度nPathLenLmt=2km。
进一步,如上所述的一种浮动车车载终端的路径搜索方法,所述预设值Mval=999999。
本发明还提供了一种浮动车车载终端的路径搜索***,包括:
道路结点集合建立模块,用于建立用于路径搜索的道路结点集合nIndNodes;该模块:
定位点道路匹配单元,用于采集浮动车的卫星定位数据,选取相邻的两个定位点,并根据卫星定位数据将两个定位点匹配到相应的道路,前一个定位点所在道路记为第一道路,后一个定位点所在道路记为第二道路;
结点集合与邻接矩阵建立单元,用于获取第一道路和第二道路的道路结点信息,选取第一道路的任一道路结点为起始点startpoint,选取第二道路的任一道路结点为终止点endpoint,将与起始点startpoint的最短路径长度和与终止点endpoint的最短路径长度均小于预设的路径搜索长度nPathLenLmt的道路结点添加到结点集合nIndNodes中,并建立结点集合nIndNodes的邻接矩阵ADJ;
其中,邻接矩阵ADJ中的第p行第q列的元素为第p个道路结点与第q个道路结点间的路径长度,不互为邻接点的两个道路结点之间的路径长度设置为预设值Mval;
路径搜索模块,用于根据所述结点集合nIndNodes和其邻接矩阵ADJ进行起始点startpoint和终止点endpoint之间的路径搜索。
进一步,如上所述的一种浮动车车载终端的路径搜索***,路径搜索模块进行路径搜索的方式为:
(21)设置路径结点集合partialPath,并记录路径结点集合partialPath的长度pathLength,集合中的元素为按搜索顺序存放的每次路径搜索时的搜索起始结点;pathLength是指路径结点集合partialPath中元素的个数,初始化时,partialPath[1]=startpoint,pathLength=1;
设置每次搜索时的搜索起始结点为lastnode,lastnode=partialPath[last],partialPath[last]表示路径结点集合partialPath的最后一个元素;初始化时,lastnode=startpoint;
(22)根据邻接矩阵ADJ获取搜索起始结点lastnode的邻接点,将得到的邻接点记录在邻接点集合nextNodes中;
(23)判断邻接点集合nextNodes是否为空,若是,则进入步骤(24),若否,则进入步骤(26);
(24)判断路径结点集合partialPath中的元素是否只有起始点startpoint,若是,则路径搜索搜索回到起始点,路径搜索完毕;若否,则进入步骤(25);
(25)删除路径结点集合partialPath中partialPath[last],更新路径结点集合partialPath和搜索起始结点lastnode,并返回步骤(22);
(26)从邻接点集合nextNodes中选取下一个搜索起始道路结点,选取方式为:
1)遍历邻接点集合nextNodes中的道路结点nextNodesi,判断道路结点nextNodesi是否为终止点endpoint,若是,则将nextNodesi从结点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,将路径结点集合partialPath中的道路结点顺次连接生成startpoint和终止点endpoint之间的一条路径,进入步骤2);若否,则进入步骤2);
2)判断nextNodesi是否在路径结点集合partialPath中,若是,则将nextNodesi从邻接点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,进入步骤3);若否,则进入步骤3);
3)判断邻接点集合nextNodes是否为空,若是,则返回步骤(24);若否,则选取邻接点集合nextNodes中的一个道路结点为下一个搜索起始结点;
(27)根据选取的下一个搜索起始结点更新路径结点集合partialPath和起始标识lastnode,清空邻接点集合nextNodes,并返回步骤(22)。
进一步,如上所述的一种浮动车车载终端的路径搜索***,该***还包括:
起止点关系判断模块,用于在路径搜索模块进行起始点startpoint和终止点endpoint之间的路径搜索之前,根据第一道路和第二道路的经纬度信息判断两条道路是否直接相连,若是,则确定起始点startpoint和终止点endpoint之间的唯一路径为起始点startpoint和终止点endpoint连接成的路径;若否,则进入路径搜索模块;两条道路直接相连是指两条道路为一条道路且起始点与终止点之间的路径不存在其它道路结点。
进一步,如上所述的一种浮动车车载终端的路径搜索***,所述路径搜索模块包括:
搜索深度和长度判断单元,用于在每次更新完路径结点集合partialPath后,在路径结点集合partialPath的长度pathLength满足pathLength≥3时,判断路径结点集合partialPath中的元素是否满足以下任一条件,若是,则进入步骤(25),若否,则进入步骤(22);
条件1:pathLength大于预设的路径搜索深度nPathNumLmt;
条件2:路径结点集合partialPath中的路径结点顺次连接生成的路径的路径长度:大于预设的路径搜索长度nPathLenLmt。
进一步,如上所述的一种浮动车车载终端的路径搜索***,所述路径搜索长度nPathLenLmt根据浮动车时速和浮动车的定位时间间隔确定;路径搜索长度=浮动车时速×定位时间间隔。
本发明的有益效果在于:本实施方式所提供的路径搜索方法及***,根据浮动车的实际运行情况,以浮动车前后两个定位点之间的距离作为约束条件,实现了相邻两个定位点之间所有可能路径的搜索,减少了搜索空间,提高了搜索效率,为城市道路拥堵分析提供了数据基础。且该方法可以离线进行,可以事先将任意两条道路道路结点的所有路径提前计算,而在车辆匹配到道路后直接使用,从而提高拥堵分析的计算效率。该方法及***,能解决大间隔定位导致的定位路段不连续的问题,为城市道路拥堵收费提供全面的定位技术支持。
附图说明
图1为本发明具体实施方式中提供的一种车载终端的路径搜索方法的流程图;
图2为本发明具体实施方式中提供的一种车载终端的路径搜索***的结构框图;
图3为本发明实施例中的结点集合中所包含的道路结点的示意图。
具体实施方式
下面结合说明书附图与具体实施方式对本发明做进一步的详细说明。
图1示出了本发明具体实施方式中提供的一种基于深度优先搜索的浮动车车载终端的路径搜索方法的流程图,该方法主要包括以下两个大的步骤:
步骤一、建立用于路径搜索的道路结点集合;
道路结点集合nIndNodes用于存储距离路径起点和路径终点的最短路径长度均不超过预设的路径搜索长度nPathLenLmt的道路结点。本实施方式中,建立道路结点结合nIndNodes包括以下几个步骤:
步骤S11:采集浮动车的卫星定位数据,将浮动车的定位点匹配到相应的道路上;
通过浮动车的车载终端采集浮动车的卫星定位数据,提取定位点的速度、经纬度、航向角等信息,并根据卫星定位数据匹配定位点到相应的道路。根据定位点的卫星定位数据将定位点匹配到相应道路为现有技术,此处不再详细描述。
需要进行两个定位点之间的路径搜索时,选取相邻的两个定位点,将其中一个定位点所在道路记为第一道路,另一个定位点所在道路记为第二道路。
步骤S12:根据第一道路和第二道路的道路结点信息建立道路结点集合nIndNodes;
获取第一道路和第二道路的道路结点信息,选取第一道路的任一道路结点为起始点startpoint,选取第二道路的任一道路结点为终止点endpoint,将与起始点startpoint的最短路径长度和与终止点endpoint的最短路径长度均小于预设的路径搜索长度nPathLenLmt的道路结点添加到结点集合nIndNodes中,并建立结点集合nIndNodes的邻接矩阵ADJ。
其中,邻接矩阵ADJ中的第p行第q列的元素为第p个道路结点与第q个道路结点间的路径长度,不互为邻接点的两个道路结点之间的路径长度设置为预设值Mval;两个道路结点不互为邻接点是指两个道路结点属于两条不同的道路。
本实施方式中,所述预设的路径搜索长度nPathLenLmt可以根据浮动车时速和浮动车的定位时间间隔确定,具体的,路径搜索长度=浮动车时速×定位时间间隔。在实际应用中,浮动车的定位时间间隔一般不超过1分钟,且在城市道路时时速一般不超过120km/h,因此,浮动车前后两个定位点之间的距离一般不超过2km,因此,预设的路径搜索长度nPathLenLmt可以设置为2km。预设值Mval为极大值,可以设置为不同的极大数,如Mval=999999,当然也可以直接将Mval设置为∞。
在实际应用中,所述道路结点除了一条道路的两个端点外,如果一条道路上存在大的拐弯处,该拐弯处也可以算是该道路的一个道路结点。
步骤二、根据所述结点集合nIndNodes和其邻接矩阵ADJ进行起始点startpoint和终止点endpoint之间的路径搜索;
本实施方式中,进行起始点startpoint和终止点endpoint之间的路径搜索之前,首先根据第一道路和第二道路的经纬度信息判断两条道路是否直接相连,若是,则确定起始点startpoint和终止点endpoint之间的唯一路径为起始点startpoint和终止点endpoint连接成的路径;若否,则进入步骤S21,进行两个道路结点间的路径搜索;其中,两条道路直接相连是指两条道路为一条道路且起始点与终止点之间的路径不存在其它道路结点。
当第一道路和第二道路不直接相连时,开始进行起始点startpoint和终止点endpoint之间的路径搜索,本实施方式中,进行最径搜索的方式如图1所示,具体包括以下几个步骤:
步骤S21:设置用于存放搜索起始结点的路径结点集合partialPath,设置每次搜索时的搜索起始结点lastnode;
为了更方面的描述后续路径搜索的步骤,本实施方式中,首先设置一路径结点集合partialPath,并记录路径结点集合partialPath的长度pathLength,集合中的元素为按搜索顺序存放的每次路径搜索时的搜索起始结点;pathLength是指路径结点集合partialPath中元素的个数,初始化时,partialPath[1]=startpoint,pathLength=1,即初始时的搜索起始结点为起始点startpoint。
设置每次搜索时的搜索起始结点lastnode,lastnode=partialPath[last],partialPath[last]表示路径结点集合partialPath的最后一个元素,即每次以路径结点集合partialPath中的最后一个元素为当前起始结点进行路径搜索,初始化时,lastnode=startpoint;
步骤S22:获取当前搜索起始结点的邻接点,并将邻接点记录在邻接点集合nextNodes中;
步骤S23:判断邻接点集合nextNodes是否为空,若是,则进入步骤S24,若否,则进入步骤S26;
确定出每次搜索的搜索起始结点lastnode后,进行下一个搜索起始结点的确定,在确定下一个搜索起始结点时,首先根据邻接矩阵ADJ获取lastnode的邻接点,将得到的邻接点记录在邻接点集合nextNodes中。之后,查看邻接点集合nextNodes是否为空,也就是判断当前搜索起始结点的邻接点是否存在,如果不存在,说明邻接点集合nIndNodes中以当前搜索起始结点为道路结点的道路不存在,需要重新选取当前搜索起始结点。当邻接点集合nextNode不为空时,即当前搜索起始结点的邻接点存在时,进入从邻接点集合nextNodes中选取下一个搜索起始结点的步骤,即步骤S26。
步骤S24:判断路径结点集合partialPath中的元素是否只有起始点startpoint,若是,则路径搜索回到起始点,路径搜索完毕;若否,则进入步骤S25;
步骤S25:删除路径结点集合partialPath中partialPath[last],更新路径结点集合partialPath和搜索起始结点lastnode,清空邻接点集合nextNodes,并返回步骤S22;
当当前搜索起始结点的邻接点不存在时,重新将当前搜索起始结点之前的搜索起始结点作为新的当前搜索起始结点,即搜索返回到上一个道路结点,此时,首先判断路径结点集合partialPath中的元素是否只有起始点startpoint,如果只有起始点startpoint,说明搜索回到起始点,路径搜索完毕,如果路径结点集合partialPath中的元素除起始点startpoint外,还有其它道路结点,则对路径结点集合partialPath进行更新,删除当前搜索起始结点,即删除路径结点集合partialPath中的最后一个元素,以更新后的路径结点集合partialPath中的最后一个元素为新的搜索起始结点,即lastnode为更新后的partialPath[last],并清空邻接点集合nextNodes后返回到步骤S22,根据新的搜索起始结点lastnod继续进行路径搜索。
步骤S26:从邻接点集合nextNodes中选取下一个搜索起始结点;
当当前搜索起始结点的邻接点存在时,从当前搜索起始结点的邻接点集合nextNodes中选取下一个搜索起始结点。本实施方式中,选取下一个搜索起始结点的具体方式包括以下步骤:
(1)遍历邻接点集合nextNodes中的道路结点nextNodesi,判断道路结点nextNodesi是否为终止点endpoint,若是,则将nextNodesi从结点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,将路径结点集合partialPath中的道路结点顺次连接生成startpoint和终止点endpoint之间的一条路径,进入步骤(2);若否,则进入步骤(2);
(2)判断nextNodesi是否在路径结点集合partialPath中,若是,则将nextNodesi从邻接点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,进入步骤(3);若否,则进入步骤(3);
(3)判断邻接点集合nextNodes是否为空,若是,则返回步骤S24;若否,则选取邻接点集合nextNodes中的一个道路结点为下一个搜索起始结点;
在从当前搜索起始结点的邻接点集合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中还有元素,则从邻接点集合nextNodes中任选一道路结点作为新一个搜索起始结点。
步骤S27:根据选取的下一个搜索起始结点更新路径结点集合partialPath和搜索起始结点lastnode后返回步骤S22继续进行路径搜索。
在选取出新的搜索起始结点后,将新的搜索起始结点添加路径结点到集合partialPath,为更新后的路径结点集合partialPath中的最后一个元素,此时,该新的搜索起始结点为下一次路径搜索的搜索起始结点,即lastnode为更新后的路径结点集合partialPath中的最后一个元素,清空邻接点集合nextNodes后返回到步骤S22中,以更新后的搜索起始结点继续进行路径搜索。
采用本实施方式中提供的上述路径搜索方法,以所述预设的路径搜索长度nPathLenLmt为约束条件,实现了结点集合nIndNodes中起始点和终止点间所有可能路径的搜索。
本实施方式中,在每次更新完路径结点集合partialPath后,若路径结点集合partialPath的长度pathLength满足pathLength≥3,该路径搜索方法还包括:
判断路径结点集合partialPath中的元素是否满足以下任一条件,若是,则进入步骤S25,若否,则进入步骤S22;
条件1:pathLength大于预设的路径搜索深度nPathNumLmt;
条件2:路径结点集合partialPath中的路径结点顺次连接生成的路径的路径长度大于预设的路径搜索长度nPathLenLmt。
所述路径搜索深度nPathNumLmt用于约束每次路径搜索时,组成路径的道路结点的个数,即限定构成起始点和终止点之间路径的道路数据不超过20个,路径搜索长度nPathLenLmt用于约束起始点和终止点之间的路径长度,如果组成路径的道路结点的个数超过nPathNumLmt或者路径长度大于nPathLenLmt,则停止当前搜索,选择新的搜索起始结点搜索。
路径搜索深度nPathNumLmt和路径搜索长度nPathLenLmt均可以根据实际需要进行设置,本实施方式中,所述路径搜索深度nPathNumLmt=20;所述路径搜索长度nPathLenLmt=2km。
本实施方式所提供的路径搜索方法,根据浮动车的实际运行情况,以浮动车前后两个定位点之间的距离和构成两个定位点的路径的道路结点的个数作为约束条件,实现了相邻两个定位点之间所有可能路径的搜索,减少了搜索空间,提高了搜索效率,为城市道路拥堵分析提供了数据基础。且该方法可以离线进行,可以事先将任意两条道路道路结点的所有路径提前计算,而在车辆匹配到道路后直接使用,从而提高拥堵分析的计算效率。该方法能解决大间隔定位导致的定位路段不连续的问题,为城市道路拥堵收费提供全面的定位技术支持。
基于图1中所示的路径搜索方法,本实施方式中还提供了一种车载终端的路径搜索***,如图2所示,该***包括道路结点集合建立模块10、起止点关系判断模块20和路径搜索模块30。
道路结点集合建立模块10,用于建立用于路径搜索的道路结点集合nIndNodes;该模块:
定位点道路匹配单元11,用于采集浮动车的卫星定位数据,选取相邻的两个定位点,并根据卫星定位数据将两个定位点匹配到相应的道路,前一个定位点所在道路记为第一道路,后一个定位点所在道路记为第二道路;
结点集合与邻接矩阵建立单元12,用于获取第一道路和第二道路的道路结点信息,选取第一道路的任一道路结点为起始点startpoint,选取第二道路的任一道路结点为终止点endpoint,将与起始点startpoint的最短路径长度和与终止点endpoint的最短路径长度均小于预设的路径搜索长度nPathLenLmt的道路结点添加到结点集合nIndNodes中,并建立结点集合nIndNodes的邻接矩阵ADJ;
其中,邻接矩阵ADJ中的第p行第q列的元素为第p个道路结点与第q个道路结点间的路径长度,不互为邻接点的两个道路结点之间的路径长度设置为预设值Mval。
本实施方式中,所述路径搜索长度nPathLenLmt根据浮动车时速和浮动车的定位时间间隔确定;路径搜索长度=浮动车时速×定位时间间隔。
起止点关系判断模块20,用于在路径搜索模块进行起始点startpoint和终止点endpoint之间的路径搜索之前,根据第一道路和第二道路的经纬度信息判断两条道路是否直接相连,若是,则确定起始点startpoint和终止点endpoint之间的唯一路径为起始点startpoint和终止点endpoint连接成的路径;若否,则进入路径搜索模块;两条道路直接相连是指两条道路为一条道路且起始点与终止点之间的路径不存在其它道路结点。
路径搜索模块30,用于根据所述结点集合nIndNodes和其邻接矩阵ADJ进行起始点startpoint和终止点endpoint之间的路径搜索,进行路径搜索的方式为:
(21)设置路径结点集合partialPath,并记录路径结点集合partialPath的长度pathLength,集合中的元素为按搜索顺序存放的每次路径搜索时的搜索起始结点;pathLength是指路径结点集合partialPath中元素的个数,初始化时,partialPath[1]=startpoint,pathLength=1;
设置每次搜索时的搜索起始结点为lastnode,lastnode=partialPath[last],partialPath[last]表示路径结点集合partialPath的最后一个元素;初始化时,lastnode=startpoint;
(22)根据邻接矩阵ADJ获取搜索起始结点lastnode的邻接点,将得到的邻接点记录在邻接点集合nextNodes中;
(23)判断邻接点集合nextNodes是否为空,若是,则进入步骤(24),若否,则进入步骤(26);
(24)判断路径结点集合partialPath中的元素是否只有起始点startpoint,若是,则路径搜索搜索回到起始点,路径搜索完毕;若否,则进入步骤(25);
(25)删除路径结点集合partialPath中partialPath[last],更新路径结点集合partialPath和搜索起始结点lastnode,并返回步骤(22);
(26)从邻接点集合nextNodes中选取下一个搜索起始道路结点,选取方式为:
1)遍历邻接点集合nextNodes中的道路结点nextNodesi,判断道路结点nextNodesi是否为终止点endpoint,若是,则将nextNodesi从结点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,将路径结点集合partialPath中的道路结点顺次连接生成startpoint和终止点endpoint之间的一条路径,进入步骤2);若否,则进入步骤2);
2)判断nextNodesi是否在路径结点集合partialPath中,若是,则将nextNodesi从邻接点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,进入步骤3);若否,则进入步骤3);
3)判断邻接点集合nextNodes是否为空,若是,则返回步骤(24);若否,则选取邻接点集合nextNodes中的一个道路结点为下一个搜索起始结点;
(27)根据选取的下一个搜索起始结点更新路径结点集合partialPath和起始标识lastnode,清空邻接点集合nextNodes,并返回步骤(22)。
本实施方式中,所述路径搜索模块30包括:
搜索深度和长度判断单元31,用于在每次更新完路径结点集合partialPath后,在路径结点集合partialPath的长度pathLength满足pathLength≥3时,判断路径结点集合partialPath中的元素是否满足以下任一条件,若是,则进入步骤(25),若否,则进入步骤(22);
条件1:pathLength大于预设的路径搜索深度nPathNumLmt;
条件2:路径结点集合partialPath中的路径结点顺次连接生成的路径的路径长度大于预设的路径搜索长度nPathLenLmt。
为了更好的理解本发明所述的方法,下面结合具体实施例对该方法进行进一步详细说明。
实施例
首先,将需要进行路径分析的两个相邻定位点匹配到各自的道路上,并获取第一道路的道路结点和第二道路的道路结点,选取第一道路的任一道路结点为起始点s,选取第二道路的任一道路结点为终止点e,本实施例中,起始点s为图3中所示的道路结点1,终止点e为图中所示的道路结点6。
下面建立用于结点1和结点6之间路径搜索的结点集合nIndNodes,本实施例中,同时满足与结点1的最短路径长度小于2km和与结点6的最短路径长度小于2km的道路结点,包括图中所示的结点2、3、4、5、7,因此,本实施例中的结点集合nIndNodes=[1,2,3,4,5,6,7]。
本实施例中,结点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。
因此,本实施例中,结点集合nIndNodes的邻接矩阵ADJ如下:
0 146 563 M V a l M V a l M V a l M V a l 146 0 M V a l M V a l M V a l M V a l 963 563 M V a l 0 28 M V a l M V a l M V a l M V a l M V a l 28 0 M V a l M V a l M V a l M V a l M V a l M V a l M V a l 0 642 M V a l M V a l M V a l M V a l M V a l 642 0 50 M V a l 963 M V a l M V a l M V a l 50 0
完成结点集合nIndNodes的建立后,根据结点集合nIndNodes和邻接矩阵ADJ进行结点1和结点6之间的路径搜索:
第一次搜索,本实施例中,各参数如下:
startpoint=1,endpoint=6;nIndNodes=[1,2,3,4,5,6,7];
partialPath=[1];lastnode=partialPath(last)=1;
以结点1开始进行路径搜索,即lastnode=1,根据邻接矩阵得到结点1的邻接点为2和3,nextNodes=[2,3],而结点2和结点3不是终止点,也没有作为过搜索起始结点,因此,结点2和结点3均满足作为下一个搜索起始结点的条件,可以以nextNodes中的任一道路结点为下一个新的搜索起始结点,本实施例中,以结点2作为下一个搜索起始结点。此时,路径结点集合partialPath更新为partialPath=[1,2],lastnode=partialPath(last)=2,并清空邻接点集合nextNodes。
第二次搜索时,各参数如下:
partialPath=[1,2];lastnode=partialPath(last)=2;
以结点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更新为:
0 M V a l 563 M V a l M V a l M V a l M V a l M V a l 0 M V a l M V a l M V a l M V a l 963 M V a l M V a l 0 28 M V a l M V a l M V a l 563 M V a l 28 0 M V a l M V a l M V a l M V a l M V a l M V a l M V a l 0 642 M V a l M V a l M V a l M V a l M V a l 642 0 50 M V a l 963 M V a l M V a l M V a l 50 0
第三次搜索时,partialPath=[1,2,7];lastnode=partialPath(last)=7;
以结点7继续进行路径搜索,结点7的邻接点为2和6,nextNodes=[2,6],由于结点6为终止点,因此,将partialPath中的道路结点与终止点6依次连接后得到起始点1和终止点6之间的一条路径,完成一次路径搜索,该路径为:1→2→7→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更新为:
0 M V a l 563 M V a l M V a l M V a l M V a l M V a l 0 M V a l M V a l M V a l M V a l M V a l 563 M V a l 0 28 M V a l M V a l M V a l M V a l M V a l 28 0 M V a l M V a l M V a l M V a l M V a l M V a l M V a l 0 642 M V a l M V a l M V a l M V a l M V a l 642 0 M V a l M V a l M V a l M V a l M V a l M V a l M V a l 0
第四次搜索时,partialPath=[1,2];lastnode=partialPath(last)=2;
以结点2继续进行路径搜索,根据更新后的ADJ得到结点2的邻接点不存在,nextNodes为空,此时以结点2之前的前一个搜索起始结点即结点1为搜索起始结点继续进行路径搜索,此时,路径结点集合partialPath更新为partialPath=[1],lastnode=partialPath(last)=1。
第五次搜索时,partialPath=[1];lastnode=partialPath(last)=1;
以结点1进行路径搜索,根据上述更新后的ADJ得到结点1的邻接点为3,nextNodes=[3],结点3既不是终止点又不存在于partialPath中,以结点3为下一个搜索起始结点继续进行路径搜索,此时,路径结点集合partialPath更新为partialPath=[1,3],lastnode=partialPath(last)=3,清空nextNodes;
第六次搜索时,partialPath=[1,3];lastnode=partialPath(last)=3;
以结点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为:
0 M V a l M V a l M V a l M V a l M V a l M V a l M V a l 0 M V a l M V a l M V a l M V a l M V a l M V a l M V a l 0 28 M V a l M V a l M V a l M V a l M V a l 28 0 M V a l M V a l M V a l M V a l M V a l M V a l M V a l 0 642 M V a l M V a l M V a l M V a l M V a l 642 0 M V a l M V a l M V a l M V a l M V a l M V a l M V a l 0
第七次搜索时,partialPath=[1,3,4],lastnode=partialPath(last)=4;
以结点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为:
0 M V a l M V a l M V a l M V a l M V a l M V a l M V a l 0 M V a l M V a l M V a l M V a l M V a l M V a l M V a l 0 M V a l M V a l M V a l M V a l M V a l M V a l M V a l 0 M V a l M V a l M V a l M V a l M V a l M V a l M V a l 0 642 M V a l M V a l M V a l M V a l M V a l 642 0 M V a l M V a l M V a l M V a l M V a l M V a l M V a l 0
第八次搜索时,partialPath=[1,3],lastnode=partialPath(last)=3;
以结点3进行路径搜索,更新后的ADJ得到结点3的邻接点不存在,nextNodes为空,以结点3之前的前一个搜索起始结点即结点1为新的当前搜索起始结点继续进行路径搜索,此时,partialPath更新为partialPath=[1],lastnode=partialPath(last)=1;
第九次搜索时,partialPath=[1],lastnode=partialPath(last)=1;
以结点1进行路径搜索,由更新后的ADJ得到结点1的邻接点不存在,nextNodes为空,且partialPath中只有起始点1,说明搜索返回到了起始点1,因此,路径搜索完毕。
因此,结点1和结点6之间的路径搜索结果为路径1→2→7→6,结点1和6之间只有一条路径。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种浮动车车载终端的路径搜索方法,包括以下步骤:
步骤一、建立用于路径搜索的道路结点集合nIndNodes;建立结点集合nIndNodes的方式包括:
(11)采集浮动车的卫星定位数据,选取相邻的两个定位点,并根据卫星定位数据将两个定位点匹配到相应的道路,前一个定位点所在道路记为第一道路,后一个定位点所在道路记为第二道路;
(12)获取第一道路和第二道路的道路结点信息,选取第一道路的任一道路结点为起始点startpoint,选取第二道路的任一道路结点为终止点endpoint,将与起始点startpoint的最短路径长度和与终止点endpoint的最短路径长度均小于预设的路径搜索长度nPathLenLmt的道路结点添加到结点集合nIndNodes中,并建立结点集合nIndNodes的邻接矩阵ADJ;
其中,邻接矩阵ADJ中的第p行第q列的元素为第p个道路结点与第q个道路结点间的路径长度,不互为邻接点的两个道路结点之间的路径长度设置为预设值Mval;
步骤二、根据所述结点集合nIndNodes和其邻接矩阵ADJ进行起始点startpoint和终止点endpoint之间的路径搜索。
2.根据权利要求1所述的一种浮动车车载终端的路径搜索方法,其特征在于:步骤二中,进行进行起始点startpoint和终止点endpoint之间路径搜索的方式包括:
(21)设置路径结点集合partialPath,并记录路径结点集合partialPath的长度pathLength,集合中的元素为按搜索顺序存放的每次路径搜索时的搜索起始结点;pathLength是指路径结点集合partialPath中元素的个数,初始化时,partialPath[1]=startpoint,pathLength=1;
设置每次搜索时的搜索起始结点为lastnode,lastnode=partialPath[last],partialPath[last]表示路径结点集合partialPath的最后一个元素;初始化时,lastnode=startpoint;
(22)根据邻接矩阵ADJ获取搜索起始结点lastnode的邻接点,将得到的邻接点记录在邻接点集合nextNodes中;
(23)判断邻接点集合nextNodes是否为空,若是,则进入步骤(24),若否,则进入步骤(26);
(24)判断路径结点集合partialPath中的元素是否只有起始点startpoint,若是,则路径搜索搜索回到起始点,路径搜索完毕;若否,则进入步骤(25);
(25)删除路径结点集合partialPath中partialPath[last],更新路径结点集合partialPath和搜索起始结点lastnode,并返回步骤(22);
(26)从邻接点集合nextNodes中选取下一个搜索起始道路结点,选取方式为:
1)遍历邻接点集合nextNodes中的道路结点nextNodesi,判断道路结点nextNodesi是否为终止点endpoint,若是,则将nextNodesi从结点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,将路径结点集合partialPath中的道路结点顺次连接生成startpoint和终止点endpoint之间的一条路径,进入步骤2);若否,则进入步骤2);
2)判断nextNodesi是否在路径结点集合partialPath中,若是,则将nextNodesi从邻接点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,进入步骤3);若否,则进入步骤3);
3)判断邻接点集合nextNodes是否为空,若是,则返回步骤(24);若否,则选取邻接点集合nextNodes中的一个道路结点为下一个搜索起始结点;
(27)根据选取的下一个搜索起始结点更新路径结点集合partialPath和起始标识lastnode,清空邻接点集合nextNodes,并返回步骤(22)。
3.根据权利要求1或2所述的一种浮动车车载终端的路径搜索方法,其特征在于:步骤二中,在进行起始点startpoint和终止点endpoint之间的路径搜索之前,还包括:
根据第一道路和第二道路的经纬度信息判断两条道路是否直接相连,若是,则确定起始点startpoint和终止点endpoint之间的唯一路径为起始点startpoint和终止点endpoint连接成的路径;若否,则进入步骤(21);两条道路直接相连是指两条道路为一条道路且起始点与终止点之间的路径不存在其它道路结点。
4.根据权利要求1或2所述的一种浮动车车载终端的路径搜索方法,其特征在于:在每次更新完路径结点集合partialPath后,若路径结点集合partialPath的长度pathLength满足pathLength≥3,该方法还包括:
判断路径结点集合partialPath中的元素是否满足以下任一条件,若是,则进入步骤(25),若否,则进入步骤(22);
条件1:pathLength大于预设的路径搜索深度nPathNumLmt;
条件2:路径结点集合partialPath中的路径结点顺次连接生成的路径的路径长度大于预设的路径搜索长度nPathLenLmt。
5.根据权利要求3所述的一种浮动车车载终端的路径搜索方法,其特征在于:所述路径搜索长度nPathLenLmt根据浮动车时速和浮动车的定位时间间隔确定;路径搜索长度=浮动车时速×定位时间间隔。
6.根据权利要求3所述的一种浮动车车载终端的路径搜索方法,其特征在于:所述路径搜索深度nPathNumLmt=20;所述路径搜索长度nPathLenLmt=2km。
7.一种浮动车车载终端的路径搜索***,包括:
道路结点集合建立模块,用于建立用于路径搜索的道路结点集合nIndNodes;该模块:
定位点道路匹配单元,用于采集浮动车的卫星定位数据,选取相邻的两个定位点,并根据卫星定位数据将两个定位点匹配到相应的道路,前一个定位点所在道路记为第一道路,后一个定位点所在道路记为第二道路;
结点集合与邻接矩阵建立单元,用于获取第一道路和第二道路的道路结点信息,选取第一道路的任一道路结点为起始点startpoint,选取第二道路的任一道路结点为终止点endpoint,将与起始点startpoint的最短路径长度和与终止点endpoint的最短路径长度均小于预设的路径搜索长度nPathLenLmt的道路结点添加到结点集合nIndNodes中,并建立结点集合nIndNodes的邻接矩阵ADJ;
其中,邻接矩阵ADJ中的第p行第q列的元素为第p个道路结点与第q个道路结点间的路径长度,不互为邻接点的两个道路结点之间的路径长度设置为预设值Mval;
路径搜索模块,用于根据所述结点集合nIndNodes和其邻接矩阵ADJ进行起始点startpoint和终止点endpoint之间的路径搜索。
8.根据权利要求7所述的一种浮动车车载终端的路径搜索***,其特征在于:所述路径搜索模块进行起始点startpoint和终止点endpoint之间路径搜索的方式为:
(21)设置路径结点集合partialPath,并记录路径结点集合partialPath的长度pathLength,集合中的元素为按搜索顺序存放的每次路径搜索时的搜索起始结点;pathLength是指路径结点集合partialPath中元素的个数,初始化时,partialPath[1]=startpoint,pathLength=1;
设置每次搜索时的搜索起始结点为lastnode,lastnode=partialPath[last],partialPath[last]表示路径结点集合partialPath的最后一个元素;初始化时,lastnode=startpoint;
(22)根据邻接矩阵ADJ获取搜索起始结点lastnode的邻接点,将得到的邻接点记录在邻接点集合nextNodes中;
(23)判断邻接点集合nextNodes是否为空,若是,则进入步骤(24),若否,则进入步骤(26);
(24)判断路径结点集合partialPath中的元素是否只有起始点startpoint,若是,则路径搜索搜索回到起始点,路径搜索完毕;若否,则进入步骤(25);
(25)删除路径结点集合partialPath中partialPath[last],更新路径结点集合partialPath和搜索起始结点lastnode,并返回步骤(22);
(26)从邻接点集合nextNodes中选取下一个搜索起始道路结点,选取方式为:
1)遍历邻接点集合nextNodes中的道路结点nextNodesi,判断道路结点nextNodesi是否为终止点endpoint,若是,则将nextNodesi从结点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,将路径结点集合partialPath中的道路结点顺次连接生成startpoint和终止点endpoint之间的一条路径,进入步骤2);若否,则进入步骤2);
2)判断nextNodesi是否在路径结点集合partialPath中,若是,则将nextNodesi从邻接点集合nextNodes中删除,将邻接矩阵中搜索起始结点lastnode和nextNodesi之间的路径长度设置为预设值Mval,进入步骤3);若否,则进入步骤3);
3)判断邻接点集合nextNodes是否为空,若是,则返回步骤(24);若否,则选取邻接点集合nextNodes中的一个道路结点为下一个搜索起始结点;
(27)根据选取的下一个搜索起始结点更新路径结点集合partialPath和起始标识lastnode,清空邻接点集合nextNodes,并返回步骤(22)。
9.根据权利要求7或8所述的一种浮动车车载终端的路径搜索***,其特征在于:该***还包括:
起止点关系判断模块,用于在路径搜索模块进行起始点startpoint和终止点endpoint之间的路径搜索之前,根据第一道路和第二道路的经纬度信息判断两条道路是否直接相连,若是,则确定起始点startpoint和终止点endpoint之间的唯一路径为起始点startpoint和终止点endpoint连接成的路径;若否,则进入路径搜索模块;两条道路直接相连是指两条道路为一条道路且起始点与终止点之间的路径不存在其它道路结点。
10.根据权利要求7或8所述的一种浮动车车载终端的路径搜索***,其特征在于:所述路径搜索模块包括:
搜索深度和长度判断单元,用于在每次更新完路径结点集合partialPath后,在路径结点集合partialPath的长度pathLength满足pathLength≥3时,判断路径结点集合partialPath中的元素是否满足以下任一条件,若是,则进入步骤(25),若否,则进入步骤(22);
条件1:pathLength大于预设的路径搜索深度nPathNumLmt;
条件2:路径结点集合partialPath中的路径结点顺次连接生成的路径的路径长度:大于预设的路径搜索长度nPathLenLmt。
CN201510999191.1A 2015-12-28 2015-12-28 一种浮动车车载终端的路径搜索方法及*** Expired - Fee Related CN105547316B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510999191.1A CN105547316B (zh) 2015-12-28 2015-12-28 一种浮动车车载终端的路径搜索方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510999191.1A CN105547316B (zh) 2015-12-28 2015-12-28 一种浮动车车载终端的路径搜索方法及***

Publications (2)

Publication Number Publication Date
CN105547316A true CN105547316A (zh) 2016-05-04
CN105547316B CN105547316B (zh) 2018-09-04

Family

ID=55826670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510999191.1A Expired - Fee Related CN105547316B (zh) 2015-12-28 2015-12-28 一种浮动车车载终端的路径搜索方法及***

Country Status (1)

Country Link
CN (1) CN105547316B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108204820A (zh) * 2017-11-15 2018-06-26 北京通途永久科技有限公司 一种快速导航路径推测方法
CN110319845A (zh) * 2018-03-30 2019-10-11 日本电气株式会社 用于确定两点之间的可达路径的方法、装置和***
CN111337041A (zh) * 2020-02-25 2020-06-26 深圳震有科技股份有限公司 一种电子导航路线的生成方法、智能终端及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005165809A (ja) * 2003-12-04 2005-06-23 Nissan Motor Co Ltd 経路探索装置、および経路探索方法
CN102176283A (zh) * 2011-01-07 2011-09-07 重庆大学 一种简化交通路网模型及基于此模型的导航方法
JP2014020983A (ja) * 2012-07-20 2014-02-03 Toyota Mapmaster Inc 経路探索装置及びその方法、並びに経路を探索するためのコンピュータプログラム及びコンピュータプログラムを記録した記録媒体
CN104392094A (zh) * 2014-10-17 2015-03-04 北京航空航天大学 一种基于浮动车数据的城市道路网络可靠性评价方法
CN104457775A (zh) * 2014-12-12 2015-03-25 北京航天宏图信息技术有限责任公司 路径确定方法、装置和导航仪
CN104574967A (zh) * 2015-01-14 2015-04-29 合肥革绿信息科技有限公司 一种基于北斗的城市大面积路网交通感知方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005165809A (ja) * 2003-12-04 2005-06-23 Nissan Motor Co Ltd 経路探索装置、および経路探索方法
CN102176283A (zh) * 2011-01-07 2011-09-07 重庆大学 一种简化交通路网模型及基于此模型的导航方法
JP2014020983A (ja) * 2012-07-20 2014-02-03 Toyota Mapmaster Inc 経路探索装置及びその方法、並びに経路を探索するためのコンピュータプログラム及びコンピュータプログラムを記録した記録媒体
CN104392094A (zh) * 2014-10-17 2015-03-04 北京航空航天大学 一种基于浮动车数据的城市道路网络可靠性评价方法
CN104457775A (zh) * 2014-12-12 2015-03-25 北京航天宏图信息技术有限责任公司 路径确定方法、装置和导航仪
CN104574967A (zh) * 2015-01-14 2015-04-29 合肥革绿信息科技有限公司 一种基于北斗的城市大面积路网交通感知方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108204820A (zh) * 2017-11-15 2018-06-26 北京通途永久科技有限公司 一种快速导航路径推测方法
CN108204820B (zh) * 2017-11-15 2021-06-04 北京通途永久科技有限公司 一种快速导航路径推测方法
CN110319845A (zh) * 2018-03-30 2019-10-11 日本电气株式会社 用于确定两点之间的可达路径的方法、装置和***
US11615090B2 (en) 2018-03-30 2023-03-28 Nec Corporation Method, apparatus and system for determining accessible paths between two nodes
CN110319845B (zh) * 2018-03-30 2024-01-09 日本电气株式会社 用于确定两点之间的可达路径的方法、装置和***
CN111337041A (zh) * 2020-02-25 2020-06-26 深圳震有科技股份有限公司 一种电子导航路线的生成方法、智能终端及存储介质

Also Published As

Publication number Publication date
CN105547316B (zh) 2018-09-04

Similar Documents

Publication Publication Date Title
US10408636B2 (en) Apparatus and method for vehicle economy improvement
EP3719714B1 (en) Machine learning system for classifying an area as vehicle way
CN105489008A (zh) 基于浮动车卫星定位数据的城市道路拥堵计算方法及***
CN102147260B (zh) 电子地图匹配方法和装置
CN105210119B (zh) 通过计算装置提供的位置数据点确定通行费的数额
CN101694749B (zh) 一种路径推测方法及装置
CN101358856B (zh) 导航装置、导航方法及导航***
CN103270393B (zh) 导航装置以及导航方法
US9459114B2 (en) Vehicle information providing device
CN105628043A (zh) 一种浮动车车载终端的最优路径搜索方法及***
CN101676689A (zh) 驾驶评价***以及驾驶评价方法
CN105466435B (zh) 一种导航***的路线规划方法和装置
CN105261212B (zh) 一种基于出租车gps数据地图匹配的出行时空分析方法
WO2014103989A1 (ja) 地図作成支援システム
CN111739323B (zh) 一种路口信息的采集方法及装置
US11335189B2 (en) Method for defining road networks
CN103149577A (zh) “北斗”导航、gps导航和历史数据融合的组合导航方法
CN103727946A (zh) 一种浮动车地图匹配数据预处理方法及***
CN105547316A (zh) 一种浮动车车载终端的路径搜索方法及***
CN103680185B (zh) 一种车辆行驶道路等级精确划分方法
CN105427592B (zh) 基于浮动车的导航电子地图转向代价计算方法
CN112633812A (zh) 货运车辆的轨迹分段方法、装置、设备及存储介质
CN116935656B (zh) 道路交通数据处理方法、装置、电子设备及存储介质
CN102842218A (zh) 拥塞预测装置、拥塞预测数据及拥塞预测方法
JP2696096B2 (ja) 最短経路探索装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180904

Termination date: 20211228

CF01 Termination of patent right due to non-payment of annual fee