CN113254562B - 一种高效gps轨迹地图匹配方法 - Google Patents
一种高效gps轨迹地图匹配方法 Download PDFInfo
- Publication number
- CN113254562B CN113254562B CN202110674847.8A CN202110674847A CN113254562B CN 113254562 B CN113254562 B CN 113254562B CN 202110674847 A CN202110674847 A CN 202110674847A CN 113254562 B CN113254562 B CN 113254562B
- Authority
- CN
- China
- Prior art keywords
- point
- matching
- search
- endpoint
- path
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000037361 pathway Effects 0.000 claims description 12
- 230000009191 jumping Effects 0.000 claims description 6
- 238000010845 search algorithm Methods 0.000 claims description 4
- 238000012804 iterative process Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 3
- 238000007418 data mining Methods 0.000 abstract description 2
- 238000004458 analytical method Methods 0.000 description 9
- 230000007547 defect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3446—Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/28—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
- G01C21/30—Map- or contour-matching
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/42—Determining position
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Navigation (AREA)
- Position Fixing By Use Of Radio Waves (AREA)
Abstract
本发明提供了一种高效GPS轨迹地图匹配方法,属于交通技术领域,包括以下步骤:得到有效GPS轨迹点列表;得到当前搜索终点;由当前搜索终点回溯所述最佳地图匹配路径,遍历获取沿途各GPS轨迹点的最佳匹配结果,并汇总输出匹配结果统计表;判断当前搜索终点是否为末点。本发明既实现了以“路径搜索导向的GPS轨迹点匹配逻辑”替代了传统的“GPS轨迹点导向的路径搜索逻辑”,同时也解决了新兴算法中存在回溯死循环问题,避免了传统匹配逻辑中繁复低效的地图数据调用过程,极大提升了地图匹配工作效率,解决了现有技术GPS轨迹匹配方法中匹配精度及效率难以兼顾的问题,可广泛应用于边缘计算、导航系统及城市交通数据挖掘管理领域。
Description
技术领域
本发明属于交通技术领域,尤其涉及一种高效GPS轨迹地图匹配方法。
背景技术
城市交通网络系统是个复杂的巨系统,每时每刻都有数以万计的交通流在其网络结构上运行及转移,如何全面准确对相关交通时空数据进行采集,进而为系统分析把握城市交通网络运行规律、拥堵发生演变机理、完善大规模城市交通需求组成结构、优化相关交通网络系统供给等交通系统分析难题提供强有力的数据及理论支撑,是近年来交通系统智能分析领域的主要议题之一。
其中车载GPS数据作为快速易得的交通信息数据源之一,具有覆盖范围广、时间连续性强、与交通网络直接相关等数据优势,近年来已为各类交通大数据系统分析项目广泛采用,通过将实时车载GPS轨迹信息映射至交通网络,通过分析挖掘相关出行轨迹信息,相关统计结果既可有效覆盖城市大范围时空下的交通系统信息,也能在需要时较精确刻画区域交通运行状态。而系统分析的第一步即是基于车载GPS将车辆行驶轨迹与路网结构进行准确映射,称为“Map Matching轨迹匹配”,相关算法即为轨迹匹配算法,一般分为四类:几何、拓扑、概率、高级等。
快速准确刻画“车辆行驶轨迹与道路网络的匹配关系”对车载导航、基于位置的服务、交通网络系统分析等工作的重要性不言而喻,然而纵观现有各类匹配算法,算法逻辑仍存在一些技术性缺点。对于传统步进式匹配算法,如HMM,隐式马尔科夫匹配算法;MDP,多准则动态规划匹配算法;LBMM,基于轨迹局部特征的匹配算法,存在缺点包括:1) 步进式匹配过程速度慢,由于该匹配过程需逐点展开路径分析,较分段式匹配显著较慢,从而极大限制了地图匹配算法的应用效果,如车载导航及基于位置的服务中地图路径卡顿现象、以及基于离线地图匹配在传统交通规划及系统分析应用领域尚无有效应用案例等。2)总体匹配比例较低,各类匹配算法匹配里程总体一般不到90%,产生原因包括路网拓扑中存在误差、GPS轨迹点采样误差等;3)匹配精度与比例难以兼顾,若采用路径搜索等算法精确匹配,往往由于网络拓扑原因导致总体匹配比例较低,有时甚至低于50%,而若采用行驶方向对行驶轨迹进行估计,则又易产生局部匹配误差;4)算法缺乏有效逻辑控制,局部匹配误差不可控,尤其在交通网络结构复杂的区域,如多条干路辅路并行路段、交叉口区域,匹配误差难以避免;5) 对异常GPS轨迹点缺乏有效处理,如设备故障导致的GPS轨迹点异常等,有时可能严重影响匹配质量。
对于最新的基于“路径搜索-轨迹点空间加权”匹配算法(申请号为:CN202110005167.7),也有一些先天缺陷,包括:前向搜索存在信息重叠,该算法设计将导致匹配过程无法避免出现回溯验证死循环,从而可能严重降低匹配效率。
发明内容
针对现有技术中的上述不足,本发明提供的一种高效GPS轨迹地图匹配方法,解决了现有技术GPS轨迹匹配方法中匹配精度及效率难以兼顾以及降低匹配效率的问题。
为了达到以上目的,本发明采用的技术方案为:
本方案提供一种高效GPS轨迹地图匹配方法,包括以下步骤:
S1、获取任一车辆的GPS经过的若干个GPS轨迹点,并对所述若干个GPS轨迹点进行初始化操作,得到有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)};
S2、在所述有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)}中,以首点vp(1)建立地图匹配工作前向迭代,利用以GPS轨迹点导向的路径搜索算法得到当前搜索终点vp(s);其中,所述前向迭代为:以首点vp(1)起始,逐点迭代向后搜索匹配路径;
S3、由当前搜索终点vp(s)回溯最佳地图匹配路径,遍历获取沿途各GPS轨迹点的最佳匹配结果,并汇总输出匹配结果统计表;
S4、根据所述匹配结果统计表,判断当前搜索终点vp(s)是否为末点vp(k),若是,则当前搜索终点vp(s)为末点vp(k),完成高效GPS轨迹地图的匹配,否则,则以vp(s+1)作为地图匹配首点,并返回步骤S2。
进一步地,所述步骤S1包括以下步骤:
S101、获取任一车辆的GPS经过的若干个GPS轨迹点;
S102、将所述若干个GPS轨迹点分离为分段集合Trip(a)={T1,T2,…,Ta,…,Tn},其中,Ta表示一个分段,且所述Ta分段内包括多个GPS轨迹点,Tn表示总分段数;
S103、从分段Ta内的多个GPS轨迹点{ p(1),p(2),…,p(i),…,p(n)}中任选一个GPS轨迹点p(i)作为当前GPS轨迹点,其中,p(n)表示总的GPS轨迹点;
S104、判断所述当前GPS轨迹点p(i)至p(i+1)的直线速度是否大于300km/h,若是,则剔除当前GPS轨迹点p(i),转入下一个GPS轨迹点p(i+1),并重复步骤S104,否则,进入步骤S105;或
判断所述当前GPS轨迹点p(i)与p(i+1)的间隔时间是否小于等于0,若是,则剔除当前GPS轨迹点p(i),转入下一个GPS轨迹点p(i+1),并重复步骤S104,否则,进入步骤S105;
S105、设当前GPS轨迹点的上一累计行驶距离变量为p(i).lastD;
S106、判断所述p(i).lastD是否小于20米,若是,则计算得到GPS轨迹点p(i-1)至p(i)的距离,并剔除GPS轨迹点p(i),并进入步骤S107,否则,所述p(i).lastD大于20米,并将当前GPS轨迹点p(i)= vp(l)纳入有效节点列表VP={vp(1),vp(2),…,vp(k)},并进入步骤S107;
S107、判断分段Ta内是否所有的GPS轨迹点均被作为当前GPS轨迹点,若是,则建立有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)},并获取所述GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)}中各GPS轨迹点k在地图数据中的待匹配邻近连接线集合NearL(k),并初始化匹配结果变量Match(k)=-1,最佳匹配权重MatchW(k)=10000,完成有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)}的建立,并进入步骤S2,否则,返回步骤S101。
再进一步地,所述步骤S2包括以下步骤:
S201、在所述有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)}中,以首点vp(1)建立地图匹配工作前向迭代;
S202、根据所述地图匹配工作前向迭代,设有效GPS列表VP={vp(1),vp(2),…,vp(k)}的起始节点为Startp,终止节点为Endp;
S203、判断所述起始节点Startp是否小于等于终止节点Endp,若是,则进入步骤S204,否则,起始节点Startp大于终止节点Endp,完成GPS轨迹的全部匹配,得到首点vp(1)至末点vp(k)的最佳地图匹配路径,并进入步骤S3;
S204、利用以GPS轨迹点导向的路径搜索算法搜索起始节点Startp至终止节点Endp的最短路径,并判断路径搜索的迭代过程是否结束,若是,则获取备选路径,并进入步骤S3,否则,重复步骤S204,直至路径搜索迭代完成。
再进一步地,所述步骤S204包括以下步骤:
S2041、对所述起始节点Startp进行匹配变量初始化处理,所述匹配变量包括上一起始节点Lastp等于起始节点Startp、当前最远匹配节点Pnow、已修改路网节点集NList、搜索打开节点集OpenL、对应搜索前进参考变量集OpenValueL、搜索结束路网节点集CloseL以及起点邻近路网连接线集NearL(Startp);
S2042、对所述起点邻近路网连接线集NearL(Startp)中各连接线建立地图匹配工作循环;
S2043、判断各连接线是否满足出发条件,若是,则将各连接线的对应端点纳入所述搜索打开节点集OpenL,并分别更新所述对应搜索前进参考变量集OpenValueL、已修改路网节点集NList以及更新各连接线对应前向搜索端点s的搜索属性集Search(s),且当循环结束时,所述搜索打开节点集OpenL不为空集,进入步骤S2044;否则,对所述起始节点Startp选取邻近匹配值最大的连接线作为该点匹配结果,并更新起始节点Startp等于起始节点Startp+1,并返回步骤S202,其中,所述端点搜索属性集Search(s)包括端点出发截断成本StartCut(s)、路径物理成本SPcost(s)、局部截断成本LOCcost(s)、GPS轨迹点加权成本PWcost(s)、对应轨迹标号ValidN(s)、局部轨迹增量Padd(s)以及途径连接线SPvia(s);
S2044、对所述搜索打开节点集OpenL中各路网搜索前向搜索端点s建立迭代,并判断所述迭代的结束要条件是否为搜索打开节点集OpenL已为空集,若是,则获取备选路径,并进入步骤S3,否则,进入步骤S2045;
S2045、选取所述搜索打开节点集OpenL中首个前向搜索端点s开展搜索,分别获取对应轨迹标号ValidN(s)以及前向搜索端点s的对应搜索前进参考变量OpenValueL值OpenValueL.begin,并判断所述对应轨迹标号ValidN(s)是否大于起始节点Startp-1,若是,则从搜索打开节点集OpenL以及对应前向搜索端点s的首个对应搜索前进参考变量集OpenValueL中剔除前向搜索端点s及其对应的前进变量HeadDist,并进入步骤S2046,否则,进入步骤S2048;
S2046、若所述对应轨迹标号ValidN(s)小于终止节点Endp,且所述对应轨迹标号ValidN(s)小于当前最远匹配节点Pnow,则计算得到前进判断距离Jdist,并进入步骤S2047;或
若所述对应轨迹标号ValidN(s)小于终止节点Endp,且所述局部轨迹增量Padd(s)=0,则计算得到前进判断距离Jdis,并进入步骤S2047;
S2047、判断前向搜索端点s的对应搜索前进参考变量的值OpenValueL(s)是否大于2*前进判断距离Jdist,且前进判断距离Jdist大于250米,若是,则返回步骤S2045,否则,进入步骤S2048;或
判断所述前向搜索端点s的对应搜索前进参考变量的值OpenValueL(s)是否大于450米且前进判断距离Jdist小于等于250米,若是,则返回步骤S2045,否则,进入步骤S2048;
S2048、对当前搜索前向搜索端点s各前向连接线集合ForwardL建立循环,并提取所述前向连接线u及下一路网节点n(u),当途径连接线SPvia(s)不为空值时,若前向搜索端点s途径连接线SPvia(s)等于前向连接线u时,跳至前向连接线集合ForwardL下一连接线,并继续计算前向连接线u与GPS轨迹点vp(ValidN(s))运动方向夹角MoveAng(u);
S2049、判断所述运动方向夹角MoveAng(u)是否大于等于100度,若是,则跳至前向连接线集合ForwardL中下一前向连接线u,并返回步骤S2048,否则,将前向连接线u按运动方向夹角MoveAng(u)从小到大顺序插入拓展连线集NextL,并在循环结束后进入步骤S20410;
S20410、对拓展连线集NextL中元素建立前向搜索循环,提取前向连接线u及下一路网节点n(u),并初始化局部GPS轨迹点加权变量PWac=0、已匹配GPS轨迹点序号Sernow=对应轨迹标号ValidN(s)、局部增量匹配点数AddN=0以及掉头指示变量TurnIndi=false;
S20411、当已匹配GPS轨迹点序号Sernow小于终止节点Endp时,初始化迭代指示变量Indi=true,并建立前向轨迹匹配增益,判断迭代结束条件是否为迭代指示变量Indi=false,若是,则进入步骤S20412,否则,进入步骤S20415;
S20412、令已匹配GPS轨迹点序号Sernow为已匹配GPS轨迹点序号Sernow+1,在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中搜索前向连接线u,并判断前向连接线u是否不在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中,若是,则进入步骤S20413,否则,前向连接线u在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中,并进入步骤S20414;或
令已匹配GPS轨迹点序号Sernow为已匹配GPS轨迹点序号Sernow+1,在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中搜索前向连接线u,并判断已匹配GPS轨迹点序号Sernow等于终止节点Endp时,迭代结束条件是否为迭代指示变量Indi=false,若是,则进入步骤S20413,否则,前向连接线u在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中,并进入步骤S20414;
S20413、判断局部增量匹配点数AddN是否等于0,若是,则进入步骤S20415,否则,则局部增量匹配点数AddN大于0,并进入步骤S20416;
S20414、分别令局部增量匹配点数AddN为局部增量匹配点数AddN+1,以及令局部GPS轨迹点加权变量PWac为PWac+ vp(Sernow).Weight(u),且若GPS轨迹点存在掉头,则掉头指示变量TurnIndi=true,迭代指示变量Indi=false;当局部增量匹配点数AddN=0,则进入步骤S20415;并判断局部增量匹配点数AddN是否大于0,若是,则进入步骤S20421,否则,返回步骤S20412;
其中, vp(Sernow).Weight(u)表示GPS轨迹点vp;
S20415、当前向搜索端点s大于起始节点Startp时,判断前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))是否为空值,若是,则进入步骤S20416,否则,进入步骤S20417;
S20416、计算得到局部搜索成本Costnow,并令前向连接线u的前向端点n(u)的局部截断成本LOCcost(n(u))=Costnow,前向连接线u的前向端点n(u)的途径连接线SPvia(n(u))= u,前向连接线u的前向端点n(u)的局部轨迹增量Padd(n(u))=0,前向连接线u的前向端点n(u)的路径物理成本SPcost(n(u))= SPcost(s)+ Length(u),前向连接线u的前向端点n(u)的GPS轨迹点加权成本PWcost(n(u))= PWac,在已修改路网节点集NList末尾插入n(u),并进入步骤S20419,其中,所述局部搜索成本Costnow的表达式如下:
Costnow=LOCcost(s) +Length(u)
式中,LOCcost(s)表示前向搜索端点s的局部截断成本,Length(u)表示前向连接线u的长度;
S20417、判断前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))是否等于前向搜索端点s对应轨迹标号ValidN(s),若是,则进入步骤S20418,否则,前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))小于前向搜索端点s对应轨迹标号ValidN(s),并进入步骤S20419;
S20418、根据前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))计算得到匹配路径成本Cost1,以及根据计算得到前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u)),若匹配路径成本Cost1小于匹配路径成本Cost2,则计算得到前向连接线u的前向端点n(u)局部截断成本LOCcost(n(u)),并令前向连接线u的前向端点n(u)途径连接线SPvia(n(u))=u,令前向连接线u的前向端点n(u)局部轨迹增量Padd(n(u))=0,以及计算得到前向连接线u的前向端点n(u)路径物理成本SPcost(n(u))以及令前向连接线u的前向端点n(u)GPS轨迹点加权成本PWcost(n(u))等于前向搜索端点s的GPS轨迹点加权成本PWcost(s),并进入步骤S20420,其中,所述匹配路径成本Cost的表达式如下:
Cost1=SPcost(s)+Length(u)+PWcost(s)
式中,SPcost(s)表示前向搜索端点s路径物理成本,Length(u)表示前向连接线u的长度,PWcost(s)表示前向搜索端点s的GPS轨迹点加权成本;
所述匹配路径成本Cost2的表达式如下:
Cost2=SPcost(n(u))+PWcost(n(u))
式中,SPcost(n(u))表示前向连接线u的前向端点n(u)路径物理成本,PWcost(n(u))表示前向连接线u的前向端点n(u)GPS轨迹点加权成本;
所述前向连接线u的前向端点n(u)局部截断成本LOCcost(n(u))的表达式如下:
LOCcost(n(u))=LOCcost(s)+Length(u)
式中,LOCcost(s)表示,前向搜索端点s局部截断成本,Length(u)表示前向连接线u的长度;
SPcost(n(u))=SPcost(s)+Length(u)
式中,SPcost(s)表示前向搜索端点s路径物理成本,Length(u)表示前向连接线u的长度;
S20419、根据前向搜索端点s局部截断成本LOCcost(s)以及前向连接线u的长度Length(u)计算得到前进变量HeadDist,并令前向连接线u的前向端点n(u)的局部截断成本LOCcost(n(u))=HeadDist,前向连接线u的前向端点n(u)的途径连接线SPvia(n(u))=u,前向连接线u的前向端点n(u)的局部轨迹增量Padd(n(u))=0,前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))= ValidN(s),前向连接线u的前向端点n(u)的路径物理成本SPcost(n(u))=SPcost(s)+Length(u),前向连接线u的前向端点n(u)的GPS轨迹点加权成本PWcost(n(u))=PWcost(s),并进入步骤S20425;其中,所述前进变量HeadDist的表达式如下:
HeadDist=LOCcost(s)+Length(u)
式中,LOCcost(s)表示前向搜索端点s局部截断成本,Length(u)表示前向连接线u的长度;
S20420、根据所述前向搜索端点s对应轨迹标号ValidN(s)计算得到当前匹配GPS轨迹点进度Mnow,并判断前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))是否为空值,若是,则进入步骤S20421,否则,进入步骤S20422;其中,所述当前匹配GPS轨迹点进度Mnow的表达式如下:
Mnow=ValidN(s)+AddN
式中,ValidN(s)表示前向搜索端点s对应轨迹标号,AddN表示局部增量匹配点数;
S20421、计算得到局部搜索成本Costnow以及令前向变量HeadDist为GPS轨迹点vp(Mnow)和前向连接线u的前向端点n(u)的欧式距离Euc(vp(Mnow), n(u)),并令前向连接线u的前向端点n(u)的局部截断成本LOCcost(n(u))=HeadDist,前向连接线u的前向端点n(u)的途径连接线SPvia(n(u))=u,前向连接线u的前向端点n(u)的局部轨迹增量Padd(n(u))=AddN,前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))=Mnow,前向连接线u的前向端点n(u)的路径物理成本SPcost(n(u))=SPcost(s)+Costnow,前向连接线u的前向端点n(u)的GPS轨迹点加权成本PWcost(n(u))=PWcost(s)+ PWac,以及在已修改路网节点集NList末尾插入n(u),并进入步骤S0425,其中,所述局部搜索成本Costnow的表达式如下:
Costnow=Length(u)-StartCut(s)
式中,Length(u)表示前向连接线u的长度,StartCut(s)表示前向搜索端点s出发截断成本;
S20422、判断前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))是否等于前向搜索端点s对应轨迹标号ValidN(s),若是,则进入步骤S20423,否则,前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))小于当前匹配GPS轨迹点进度Mnow,并进入步骤S20424;
S20423、分别计算得到匹配路径成本Cost1以及匹配路径成本Cost2,若匹配路径成本Cost1小于匹配路径成本Cost2,则令前进变量HeadDist等于GPS轨迹点vp(Mnow)和n(u)的欧式距离Euc(vp(Mnow),n(u)),令前向连接线u的前向端点n(u)局部截断成本LOCcost(n(u))=HeadDist,前向连接线u的前向端点n(u)途径连接线SPvia(n(u))= u,前向连接线u的前向端点n(u)局部轨迹增量Padd(n(u))=AddN,以及分别计算得到前向连接线u的前向端点n(u)路径物理成本SPcost(n(u))以及前向连接线u的前向端点n(u)GPS轨迹点加权成本PWcost(n(u)),并进入步骤S20428;其中,所述匹配路径成本的表达式如下:
Cost1=SPcost(s)+Length(u)+PWcost(s)+PWac-StartCut(s)
式中,SPcost(s)表示前向搜索端点s路径物理成本,Length(u)表示前向连接线u的长度,PWcost(s)表示前向搜索端点s的GPS轨迹点加权成本,PWac表示局部GPS轨迹点加权变量,StartCut(s)表示前向搜索端点s出发截断成本;
所述匹配路径成本Cost2的表达式如下:
Cost2=SPcost(n(u))+PWcost(n(u))
式中,SPcost(n(u))表示前向连接线u的前向端点n(u)路径物理成本,PWcost(n(u))表示前向连接线u的前向端点n(u)GPS轨迹点加权成本;
所述前向连接线u的前向端点n(u)路径物理成本SPcost(n(u))的表达式如下:
SPcost(n(u))=SPcost(s)+Length(u)+StartCut(s)
式中,SPcost(s)表示前向搜索端点s路径物理成本,Length(u)表示前向连接线u的长度,StartCut(s)表示前向搜索端点s出发截断成本;
所述前向连接线u的前向端点n(u)GPS轨迹点加权成本PWcost(n(u))的表达式如下:
PWcost(n(u))=PWcost(s)+PWac
式中,PWcost(s)表示前向搜索端点s的GPS轨迹点加权成本,PWac表示局部GPS轨迹点加权变量;
S20424、执行前进变量HeadDist为GPS轨迹点vp(Mnow)和前向连接线u的前向端点n(u)的欧式距离Euc(vp(Mnow), n(u)),并计算得到局部搜索成本Costnow,以及令前向连接线u的前向端点n(u)的局部截断成本LOCcost(n(u))=HeadDist,前向连接线u的前向端点n(u)的途径连接线SPvia(n(u))=u,前向连接线u的前向端点n(u)的局部轨迹增量Padd(n(u))=AddN,前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))=Mnow,前向连接线u的前向端点n(u)的路径物理成本SPcost(n(u))=SPcost(s)+Costnow,前向连接线u的前向端点n(u)的GPS轨迹点加权成本PWcost(n(u))=PWcost(s)+PWac,并进入步骤S20428;其中,所述局部搜索成本Costnow的表达式如下:
Costnow=Length(u)-StartCut(s)
式中,Length(u)表示前向连接线u的长度,StartCut(s)表示前向搜索端点s出发截断成本;
S20425、当前向搜索端点s对应轨迹标号ValidN(s)小于终止节点Endp时,在搜索结束路网节点集CloseL中剔除前向搜索端点s,并计算得到前进变量HeadDist(n(u)),若搜索打开节点集OpenL中有前向连接线u的前向端点n(u),则剔除该元素,并判断前向搜索端点s对应轨迹标号ValidN(s)是否等于当前最远匹配节点Pnow,若是,则进入步骤S20426,否则,前向连接线u的前向端点n(u)对应轨迹标号ValidN(s)小于当前最远匹配节点Pnow,并进入步骤S20427;其中,前进变量HeadDist(n(u))的表达式如下:
HeadDist(n(u))= Euc(vp(ValidN(s)+1),n(u))+ LOCcost(n(u))
式中,Euc(vp(ValidN(s)+1),n(u))表示GPS轨迹点vp(ValidN(s))和前向连接线u的前向端点n(u)的欧式距离,LOCcost(n(u))表示前向连接线u的前向端点n(u)局部截断成本;
S20426、在搜索打开节点集OpenL起始位置插入前向连接线u的前向端点n(u),在对应搜索前进参考变量集OpenValueL起始位置插入前进变量HeadDist(n(u)),在搜索结束路网节点集CloseL中插入前向连接线u的前向端点n(u),并返回步骤S2044;
S20427、在搜索打开节点集OpenL末尾位置插入n(u),在对应搜索前进参考变量集OpenValueL末尾位置插入前进变量HeadDist(n(u)),当前向搜索端点s对应轨迹标号ValidN(s)等于终止节点Endp时,若前向连接线u在GPS轨迹点vp(Endp)邻近连线集NearL(Endp)中,则在搜索结束路网节点集CloseL中剔除前向搜索端点s,在搜索打开节点集OpenL起始位置插入前向连接线u的前向端点n(u),在对应搜索前进参考变量集OpenValueL起始位置插入0以及在搜索结束路网节点集CloseL插入前向连接线u的前向端点n(u),并返回步骤S2043;
S20428、当前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))小于终止节点Endp时,计算前进变量HeadDist(n(u))等于GPS轨迹点vp(ValidN(s)和n(u)的欧式距离Euc(vp(ValidN(n(u))+1)以及前向连接线u的前向端点n(u))和前向连接线u的前向端点n(u)局部截断成本LOCcost(n(u))之和,若搜索打开节点集OpenL中有前向连接线u的前向端点n(u),则剔除前向连接线u的前向端点n(u),并判断前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))是否大等于当前最远匹配节点Pnow,若是,则进入步骤S20429,否则,进入步骤S20430;其中,所述前进变量HeadDist(n(u))的表达式如下:
HeadDist(n(u))=(vp(ValidN(n(u))+1)+LOCcost(n(u))
式中,Euc(vp(ValidN(n(u))+1)表示GPS轨迹点vp(ValidN(s))和n(u)的欧式距离Euc,LOCcost(n(u))表示前向连接线u的前向端点n(u)局部截断成本;
S20429、在搜索打开节点集OpenL起始位置插入前向连接线u的前向端点n(u),在对应搜索前进参考变量集OpenValueL起始位置插入前进变量HeadDist(n(u)),并返回步骤S2044;
S20430、判断前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))是否大于当前最远匹配节点Pnow,若是,则进入步骤S20431,否则,前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))小于等于当前最远匹配节点Pnow,并进入步骤S20432;
S20431、更新当前最远匹配节点Pnow为前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u)),并清空搜索结束路网节点集CloseL集合,插入前向连接线u的前向端点n(u),并返回步骤S2044;
S20432、在搜索打开节点集OpenL末尾位置插入前向连接线u的前向端点n(u),在对应搜索前进参考变量集OpenValueL末尾位置插入前进变量HeadDist(n(u)),当前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))等于终止节点Endp时,若前向连接线u在GPS轨迹点vp(Endp)邻近连线集NearL(Endp)中,在搜索打开节点集OpenL起始位置插入n(u),在对应搜索前进参考变量集OpenValueL起始位置插入0,并返回步骤S2043。
再进一步地,所述步骤S3包括以下步骤:
S301、由末点vp(k)回溯所述最佳匹配路径,遍历获取沿途各GPS轨迹点,并根据沿途GPS轨迹点,获取搜索结束路网节点集CloseL各元素,遍历所述搜索结束路网节点集CloseL选择一最优元素作为匹配路径回溯点;
S302、根据所述匹配路径回溯点,以最优匹配尾节点BestEndN为尾节点回溯完成当前轨迹段匹配过程;
S303、根据当前匹配轨迹段回溯结果,输出从GPS轨迹点vp(Lastp)到GPS轨迹点vp(Pnow)中各GPS轨迹点的匹配结果,并分别清空所有已修改路网节点集NList中涉及路网节点各途径连接线SPvia、路径物理成本SPcost、局部截断成本LOCcost、GPS轨迹点加权成本PWcost、局部轨迹增量Padd、对应轨迹标号ValidN以及端点出发截断成本StartCut;
S304、判断起始节点Startp是否大于终止节点Endp,若是,则当前出行GPS轨迹点全部匹配结束,并汇总输出匹配结果统计表,并进入步骤S4,否则,起始节点Startp小于终止节点Endp,并进入步骤S4。
再进一步地,所述步骤S301包括以下步骤:
S3011、由末点vp(k)回溯所述最佳匹配路径,遍历获取沿途各GPS轨迹点,并根据沿途GPS轨迹点,获取搜索结束路网节点集CloseL各元素;
S3012、对所述搜索结束路网节点集CloseL中各元素道路节点建立循环,并初始化最小总路径加权成本MinCost等于1000000,当节点对应轨迹标号ValidN(s)等于当前最远匹配节点Pnow时,建立最优局部路径终点搜索迭代m=false,以及初始化当前搜索路网节点CrtN为前向搜索端点s,并进入步骤S3013;
S3013、检查当前最远匹配节点Pnow附近是否存在前向搜索端点s途径连接线集的最后一个元素SPvia(s).last,若是,则找到局部最优终点,并进入步骤S3015,否则,进入步骤S3014;
S3014、若前向搜索端点s途径连接线集的元素数量SPvia(s)不为空值,令路径回溯端点CrtEndN等于前向搜索端点s途径连接线SPvia(s).tail,并返回步骤S3012;
S3015、根据找到的路径回溯端点CrtEndN及所属连接线路径回溯端点CrtEndN途径连接线SPvia(CrtN),计算得到路径总成本TotalCost,并判断所述路径总成本TotalCost是否小于最小总路径加权成本MinCost,若是,则更新最小总路径加权成本MinCost等于路径总成本TotalCost以及最佳匹配尾节点BestEndN等于路径回溯端点CrtEndN,进入下一备选尾节点,并返回步骤S3011,否则,遍历完搜索结束路网节点集CloseL,选择一最优元素作为匹配路径回溯点,并进入步骤S302;其中,路径总成本TotalCost的表达式如下:
TotalCost=SPcost(CrtN)+PWcost(CrtN)+Euc(vp(Pnow),CrtN)
式中,SPcost(CrtN)表示路径回溯端点CrtEndN的路径物理成本集,PWcost(CrtN)表示路径回溯端点CrtEndN的GPS轨迹点加权成本集,Euc(vp(Pnow),CrtN)表示GPS轨迹点vp(Pnow)和路径回溯端点CrtEndN的欧式距离。
再进一步地,所述步骤S302包括以下步骤:
S3021、更新起始节点Startp为当前最远匹配节点Pnow+1,并分别初始化当前回溯GPS轨迹点CrtP等于当前最远匹配节点Pnow、当前回溯尾节点CrtEndN等于最佳匹配尾节点BestEndN以及回溯指示变量BackCk等于端点BestEndN途径连接线SPvia(BestEndN),建立回溯迭代,并判断回溯迭代的回溯指示变量BackCk是否为空值,若是,则进入步骤S3022,否则进入步骤S3023;
S3022、检查是否已回溯到路网路径起点,若是,则直接终止迭代,并进入步骤S3023,否则,返回步骤S3021;
S3023、建立从当前回溯GPS轨迹点CrtP到上一起始节点Lastp的逆序循环k;
S3024、当匹配结果变量Match(k)等于-1时,若路径回溯端点CrtEndN途径连接线SPvia(CrtEndN)在邻近连线集NearL(k)中,则更新匹配结果变量Match(k)等于路径回溯端点CrtEndN途径连接线SPvia(CrtEndN),最优匹配权重MatchW(k)等于节点k匹配连接线的匹配权重vp(k).Weight(Match(k));以及
当匹配结果变量Match(k)大于-1时,若路径回溯端点CrtEndN途径连接线SPvia(CrtEndN)在邻近连线集NearL(k)中,且轨迹点vp(k)对应该连接线的匹配权重vp(k).Weight(SPvia(CrtEndN))小于最佳匹配权重MatchW(k),则匹配结果变量Match(k)为路径回溯端点CrtEndN途径连接线SPvia(CrtEndN),最佳匹配权重MatchW(k)为节点k匹配连接线的匹配权重vp(k).Weight(Match(k)),若路径回溯端点CrtEndN途径连接线SPvia(CrtEndN)不在邻近连线集NearL(k)中,且路径回溯端点CrtEndN对应轨迹标号ValidN(CrtEndN)小于当前回溯GPS轨迹点CrtP时,则当前回溯GPS轨迹点CrtP为当前回溯GPS轨迹点CrtP-1;
S3025、令k为k-1,并继续循环,若判断循环是否结束,若是,则进入步骤S3026,否则,返回步骤S3024;
S3026、判断回溯指示变量BackCk是否等于空值,若否,则返回步骤S3023,否则,回溯指示变量BackCk等于空值,迭代结束,从而实现以最优匹配尾节点BestEndN为尾节点回溯完成当前轨迹段的匹配过程,并进入步骤S303。
再进一步地,所述步骤S4包括以下步骤:
S401、根据所述匹配结果统计表,判断当前搜索终点vp(s)是否为末点vp(k),若是,则当前搜索终点vp(s)为末点vp(k),完成高效GPS轨迹地图的匹配,否则,则以vp(s+1)作为地图匹配首点,并进入步骤S402;
S402、输出首点vp(1)至中断点vp(s)的匹配结果,并从下一点vp(s+1)到末点vp(k)执行步骤S2至S3,直至完成高效GPS轨迹地图的匹配。
本发明的有益效果:
(1)
本发明既实现了以“路径搜索导向的GPS轨迹点匹配逻辑”替代了传统的“GPS轨迹点导向的路径搜索逻辑”,同时也解决了新兴算法中存在回溯死循环问题,避免了传统匹配逻辑中繁复低效的地图数据调用过程,极大提升了地图匹配工作效率。
(2)本发明可广泛应用于边缘计算、导航系统及城市交通数据挖掘管理领域。
附图说明
图1为本发明的方法流程图。
图2为本实施例中实验数据示意图
图3为本实施例中匹配精度对比图。
图4为本实施例中匹配速度对比图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
实施例
在对本实施例进行说明前,对以下参数进行说明:
本实施例中,false表示否,true表示是。
如图1所示,本发明提供了一种高效GPS轨迹地图匹配方法,其实现方法如下:
S1、获取任一车辆的GPS经过的若干个GPS轨迹点,并对所述若干个GPS轨迹点进行初始化操作,得到有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)},其实现方法如下:
S101、获取任一车辆的GPS经过的若干个GPS轨迹点;
S102、将所述若干个GPS轨迹点分离为分段集合Trip(a)={T1,T2,…,Ta,…,Tn},其中,Ta表示一个分段,且所述Ta分段内包括多个GPS轨迹点,Tn表示总分段数;
S103、从分段Ta内的多个GPS轨迹点{ p(1),p(2),…,p(i),…,p(n)}中任选一个GPS轨迹点p(i)作为当前GPS轨迹点,其中,p(n)表示总的GPS轨迹点;
S104、判断所述当前GPS轨迹点p(i)至p(i+1)的直线速度是否大于300km/h,若是,则剔除当前GPS轨迹点p(i),转入下一个GPS轨迹点p(i+1),并重复步骤S104,否则,进入步骤S105;或
判断所述当前GPS轨迹点p(i)与p(i+1)的间隔时间是否小于等于0,若是,则剔除当前GPS轨迹点p(i),转入下一个GPS轨迹点p(i+1),并重复步骤S104,否则,进入步骤S105;
S105、设当前GPS轨迹点的上一累计行驶距离变量为p(i).lastD;
S106、判断所述p(i).lastD是否小于20米,若是,则计算得到GPS轨迹点p(i-1)至p(i)的距离,并剔除GPS轨迹点p(i),并进入步骤S107,否则,所述p(i).lastD大于20米,并将当前GPS轨迹点p(i)= vp(l)纳入有效节点列表VP={vp(1),vp(2),…,vp(k)},并进入步骤S107;
本实施例中,如果小于20米,比如是3米,并设当前GPS轨迹点的上一累计行驶距离变量为p(i).lastD=10米,则轨迹点p(i+1)的当前累计行驶p(i).currentD=p(i).lastD+3=13米,轨迹点p(i+1).lastD=p(i).currentD,并从节点列表中剔除p(i);
S107、判断分段Ta内是否所有的GPS轨迹点均被作为当前GPS轨迹点,若是,则建立有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)},并获取所述GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)}中各GPS轨迹点k在地图数据中的待匹配邻近连接线集合NearL(k),并初始化匹配结果变量Match(k)=-1,最佳匹配权重MatchW(k)=10000,完成有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)}的建立,并进入步骤S2,否则,返回步骤S101;
S2、在所述有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)}中,以首点vp(1)建立地图匹配工作前向迭代,利用以GPS轨迹点导向的路径搜索算法得到当前搜索终点vp(s),其实现方法如下:
S201、在所述有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)}中,以首点vp(1)建立地图匹配工作前向迭代;
S202、根据所述地图匹配工作前向迭代,设有效GPS列表VP={vp(1),vp(2),…,vp(k)}的起始节点为Startp,终止节点为Endp;
S203、判断所述起始节点Startp是否小于等于终止节点Endp,若是,则进入步骤S204,否则,起始节点Startp大于终止节点Endp,完成GPS轨迹的全部匹配,得到首点vp(1)至末点vp(k)的最佳地图匹配路径,并进入步骤S3;
S204、利用以GPS轨迹点导向的路径搜索算法搜索起始节点Startp至终止节点Endp的最短路径,并判断路径搜索的迭代过程是否结束,若是,则获取备选路径,并进入步骤S3,否则,重复步骤S204,直至路径搜索迭代完成,其实现方法如下:
S2041、对所述起始节点Startp进行匹配变量初始化处理,所述匹配变量包括上一起始节点Lastp等于起始节点Startp、当前最远匹配节点Pnow、已修改路网节点集NList、搜索打开节点集OpenL、对应搜索前进参考变量集OpenValueL、搜索结束路网节点集CloseL以及起点邻近路网连接线集NearL(Startp);
S2042、对所述起点邻近路网连接线集NearL(Startp)中各连接线建立地图匹配工作循环;
S2043、判断各连接线是否满足出发条件,若是,则将各连接线的对应端点纳入所述搜索打开节点集OpenL,并分别更新所述对应搜索前进参考变量集OpenValueL、已修改路网节点集NList以及更新各连接线对应前向搜索端点s的搜索属性集Search(s),且当循环结束时,所述搜索打开节点集OpenL不为空集,进入步骤S2044;否则,对所述起始节点Startp选取邻近匹配值最大的连接线作为该点匹配结果,并更新起始节点Startp等于起始节点Startp+1,并返回步骤S202,其中,所述端点搜索属性集Search(s)包括端点出发截断成本StartCut(s)、路径物理成本SPcost(s)、局部截断成本LOCcost(s)、GPS轨迹点加权成本PWcost(s)、对应轨迹标号ValidN(s)、局部轨迹增量Padd(s)以及途径连接线SPvia(s);
S2044、对所述搜索打开节点集OpenL中各路网搜索前向搜索端点s建立迭代,并判断所述迭代的结束要条件是否为搜索打开节点集OpenL已为空集,若是,则获取备选路径,并进入步骤S3,否则,进入步骤S2045;
S2045、选取所述搜索打开节点集OpenL中首个前向搜索端点s开展搜索,分别获取对应轨迹标号ValidN(s)以及前向搜索端点s的对应搜索前进参考变量OpenValueL值OpenValueL.begin,并判断所述对应轨迹标号ValidN(s)是否大于起始节点Startp-1,若是,则从搜索打开节点集OpenL以及对应前向搜索端点s的首个对应搜索前进参考变量集OpenValueL中剔除前向搜索端点s及其对应的前进变量HeadDist,并进入步骤S2046,否则,进入步骤S2048;
S2046、若所述对应轨迹标号ValidN(s)小于终止节点Endp,且所述对应轨迹标号ValidN(s)小于当前最远匹配节点Pnow,则计算得到前进判断距离Jdist,并进入步骤S2047;或
若所述对应轨迹标号ValidN(s)小于终止节点Endp,且所述局部轨迹增量Padd(s)=0,则计算得到前进判断距离Jdis,并进入步骤S2047;
S2047、判断前向搜索端点s的对应搜索前进参考变量的值OpenValueL(s)是否大于2*前进判断距离Jdist,且前进判断距离Jdist大于250米,若是,则返回步骤S2045,否则,进入步骤S2048;或
判断所述前向搜索端点s的对应搜索前进参考变量的值OpenValueL(s)是否大于450米且前进判断距离Jdist小于等于250米,若是,则返回步骤S2045,否则,进入步骤S2048;
S2048、对当前搜索前向搜索端点s各前向连接线集合ForwardL建立循环,并提取所述前向连接线u及下一路网节点n(u),当途径连接线SPvia(s)不为空值时,若前向搜索端点s途径连接线SPvia(s)等于前向连接线u时,跳至前向连接线集合ForwardL下一连接线,并继续计算前向连接线u与GPS轨迹点vp(ValidN(s))运动方向夹角MoveAng(u);
S2049、判断所述运动方向夹角MoveAng(u)是否大于等于100度,若是,则跳至前向连接线集合ForwardL中下一前向连接线u,并返回步骤S2048,否则,将前向连接线u按运动方向夹角MoveAng(u)从小到大顺序插入拓展连线集NextL,并在循环结束后进入步骤S20410;
S20410、对拓展连线集NextL中元素建立前向搜索循环,提取前向连接线u及下一路网节点n(u),并初始化局部GPS轨迹点加权变量PWac=0、已匹配GPS轨迹点序号Sernow=对应轨迹标号ValidN(s)、局部增量匹配点数AddN=0以及掉头指示变量TurnIndi=false;
S20411、当已匹配GPS轨迹点序号Sernow小于终止节点Endp时,初始化迭代指示变量Indi=true,并建立前向轨迹匹配增益,判断迭代结束条件是否为迭代指示变量Indi=false,若是,则进入步骤S20412,否则,进入步骤S20415;
S20412、令已匹配GPS轨迹点序号Sernow为已匹配GPS轨迹点序号Sernow+1,在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中搜索前向连接线u,并判断前向连接线u是否不在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中,若是,则进入步骤S20413,否则,前向连接线u在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中,并进入步骤S20414;或
令已匹配GPS轨迹点序号Sernow为已匹配GPS轨迹点序号Sernow+1,在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中搜索前向连接线u,并判断已匹配GPS轨迹点序号Sernow等于终止节点Endp时,迭代结束条件是否为迭代指示变量Indi=false,若是,则进入步骤S20413,否则,前向连接线u在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中,并进入步骤S20414;
S20413、判断局部增量匹配点数AddN是否等于0,若是,则进入步骤S20415,否则,则局部增量匹配点数AddN大于0,并进入步骤S20416;
S20414、分别令局部增量匹配点数AddN为局部增量匹配点数AddN+1,以及令局部GPS轨迹点加权变量PWac为PWac+(Sernow).Weight(u),且若GPS轨迹点存在掉头,则掉头指示变量TurnIndi=true,迭代指示变量Indi=false;当局部增量匹配点数AddN=0,则进入步骤S20415;并判断局部增量匹配点数AddN是否大于0,若是,则进入步骤S20421,否则,返回步骤S20412;其中,
,vp(Sernow).Weight(u)表示GPS轨迹点vp;
S20415、当前向搜索端点s大于起始节点Startp时,判断前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))是否为空值,若是,则进入步骤S20416,否则,进入步骤S20417;
S20416、计算得到局部搜索成本Costnow,并令前向连接线u的前向端点n(u)的局部截断成本LOCcost(n(u))=Costnow,前向连接线u的前向端点n(u)的途径连接线SPvia(n(u))= u,前向连接线u的前向端点n(u)的局部轨迹增量Padd(n(u))=0,前向连接线u的前向端点n(u)的路径物理成本SPcost(n(u))= SPcost(s)+ Length(u),前向连接线u的前向端点n(u)的GPS轨迹点加权成本PWcost(n(u))= PWac,在已修改路网节点集NList末尾插入n(u),并进入步骤S20419,其中,所述局部搜索成本Costnow的表达式如下:
Costnow=LOCcost(s) +Length(u)
式中,LOCcost(s)表示前向搜索端点s的局部截断成本,Length(u)表示前向连接线u的长度;
S20417、判断前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))是否等于前向搜索端点s对应轨迹标号ValidN(s),若是,则进入步骤S20418,否则,前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))小于前向搜索端点s对应轨迹标号ValidN(s),并进入步骤S20419;
S20418、根据前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))计算得到匹配路径成本Cost1,以及根据计算得到前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u)),若匹配路径成本Cost1小于匹配路径成本Cost2,则计算得到前向连接线u的前向端点n(u)局部截断成本LOCcost(n(u)),并令前向连接线u的前向端点n(u)途径连接线SPvia(n(u))=u,令前向连接线u的前向端点n(u)局部轨迹增量Padd(n(u))=0,以及计算得到前向连接线u的前向端点n(u)路径物理成本SPcost(n(u))以及令前向连接线u的前向端点n(u)GPS轨迹点加权成本PWcost(n(u))等于前向搜索端点s的GPS轨迹点加权成本PWcost(s),并进入步骤S20420,其中,所述匹配路径成本Cost的表达式如下:
Cost1=SPcost(s)+Length(u)+PWcost(s)
式中,SPcost(s)表示前向搜索端点s路径物理成本,Length(u)表示前向连接线u的长度,PWcost(s)表示前向搜索端点s的GPS轨迹点加权成本;
所述匹配路径成本Cost2的表达式如下:
Cost2=SPcost(n(u))+PWcost(n(u))
式中,SPcost(n(u))表示前向连接线u的前向端点n(u)路径物理成本,PWcost(n(u))表示前向连接线u的前向端点n(u)GPS轨迹点加权成本;
所述前向连接线u的前向端点n(u)局部截断成本LOCcost(n(u))的表达式如下:
LOCcost(n(u))=LOCcost(s)+Length(u)
式中,LOCcost(s)表示,前向搜索端点s局部截断成本,Length(u)表示前向连接线u的长度;
SPcost(n(u))=SPcost(s)+Length(u)
式中,SPcost(s)表示前向搜索端点s路径物理成本,Length(u)表示前向连接线u的长度;
S20419、根据前向搜索端点s局部截断成本LOCcost(s)以及前向连接线u的长度Length(u)计算得到前进变量HeadDist,并令前向连接线u的前向端点n(u)的局部截断成本LOCcost(n(u))=HeadDist,前向连接线u的前向端点n(u)的途径连接线SPvia(n(u))=u,前向连接线u的前向端点n(u)的局部轨迹增量Padd(n(u))=0,前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))= ValidN(s),前向连接线u的前向端点n(u)的路径物理成本SPcost(n(u))=SPcost(s)+Length(u),前向连接线u的前向端点n(u)的GPS轨迹点加权成本PWcost(n(u))=PWcost(s),并进入步骤S20425;其中,所述前进变量HeadDist的表达式如下:
HeadDist=LOCcost(s)+Length(u)
式中,LOCcost(s)表示前向搜索端点s局部截断成本,Length(u)表示前向连接线u的长度;
S20420、根据所述前向搜索端点s对应轨迹标号ValidN(s)计算得到当前匹配GPS轨迹点进度Mnow,并判断前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))是否为空值,若是,则进入步骤S20421,否则,进入步骤S20422;其中,所述当前匹配GPS轨迹点进度Mnow的表达式如下:
Mnow=ValidN(s)+AddN
式中,ValidN(s)表示前向搜索端点s对应轨迹标号,AddN表示局部增量匹配点数;
S20421、计算得到局部搜索成本Costnow以及令前向变量HeadDist为GPS轨迹点vp(Mnow)和前向连接线u的前向端点n(u)的欧式距离Euc(vp(Mnow), n(u)),并令前向连接线u的前向端点n(u)的局部截断成本LOCcost(n(u))=HeadDist,前向连接线u的前向端点n(u)的途径连接线SPvia(n(u))=u,前向连接线u的前向端点n(u)的局部轨迹增量Padd(n(u))=AddN,前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))=Mnow,前向连接线u的前向端点n(u)的路径物理成本SPcost(n(u))=SPcost(s)+Costnow,前向连接线u的前向端点n(u)的GPS轨迹点加权成本PWcost(n(u))=PWcost(s)+ PWac,以及在已修改路网节点集NList末尾插入n(u),并进入步骤S0425,其中,所述局部搜索成本Costnow的表达式如下:
Costnow=Length(u)-StartCut(s)
式中,Length(u)表示前向连接线u的长度,StartCut(s)表示前向搜索端点s出发截断成本;
S20422、判断前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))是否等于前向搜索端点s对应轨迹标号ValidN(s),若是,则进入步骤S20423,否则,前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))小于当前匹配GPS轨迹点进度Mnow,并进入步骤S20424;
S20423、分别计算得到匹配路径成本Cost1以及匹配路径成本Cost2,若匹配路径成本Cost1小于匹配路径成本Cost2,则令前进变量HeadDist等于GPS轨迹点vp(Mnow)和n(u)的欧式距离Euc(vp(Mnow),n(u)),令前向连接线u的前向端点n(u)局部截断成本LOCcost(n(u))=HeadDist,前向连接线u的前向端点n(u)途径连接线SPvia(n(u))= u,前向连接线u的前向端点n(u)局部轨迹增量Padd(n(u))=AddN,以及分别计算得到前向连接线u的前向端点n(u)路径物理成本SPcost(n(u))以及前向连接线u的前向端点n(u)GPS轨迹点加权成本PWcost(n(u)),并进入步骤S20428;其中,所述匹配路径成本的表达式如下:
Cost1=SPcost(s)+Length(u)+PWcost(s)+PWac-StartCut(s)
式中,SPcost(s)表示前向搜索端点s路径物理成本,Length(u)表示前向连接线u的长度,PWcost(s)表示前向搜索端点s的GPS轨迹点加权成本,PWac表示局部GPS轨迹点加权变量,StartCut(s)表示前向搜索端点s出发截断成本;
所述匹配路径成本Cost2的表达式如下:
Cost2=SPcost(n(u))+PWcost(n(u))
式中,SPcost(n(u))表示前向连接线u的前向端点n(u)路径物理成本,PWcost(n(u))表示前向连接线u的前向端点n(u)GPS轨迹点加权成本;
所述前向连接线u的前向端点n(u)路径物理成本SPcost(n(u))的表达式如下:
SPcost(n(u))=SPcost(s)+Length(u)+StartCut(s)
式中,SPcost(s)表示前向搜索端点s路径物理成本,Length(u)表示前向连接线u的长度,StartCut(s)表示前向搜索端点s出发截断成本;
所述前向连接线u的前向端点n(u)GPS轨迹点加权成本PWcost(n(u))的表达式如下:
PWcost(n(u))=PWcost(s)+PWac
式中,PWcost(s)表示前向搜索端点s的GPS轨迹点加权成本,PWac表示局部GPS轨迹点加权变量;
S20424、执行前进变量HeadDist为GPS轨迹点vp(Mnow)和前向连接线u的前向端点n(u)的欧式距离Euc(vp(Mnow), n(u)),并计算得到局部搜索成本Costnow,以及令前向连接线u的前向端点n(u)的局部截断成本LOCcost(n(u))=HeadDist,前向连接线u的前向端点n(u)的途径连接线SPvia(n(u))=u,前向连接线u的前向端点n(u)的局部轨迹增量Padd(n(u))=AddN,前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))=Mnow,前向连接线u的前向端点n(u)的路径物理成本SPcost(n(u))=SPcost(s)+Costnow,前向连接线u的前向端点n(u)的GPS轨迹点加权成本PWcost(n(u))=PWcost(s)+PWac,并进入步骤S20428;其中,所述局部搜索成本Costnow的表达式如下:
Costnow=Length(u)-StartCut(s)
式中,Length(u)表示前向连接线u的长度,StartCut(s)表示前向搜索端点s出发截断成本;
S20425、当前向搜索端点s对应轨迹标号ValidN(s)小于终止节点Endp时,在搜索结束路网节点集CloseL中剔除前向搜索端点s,并计算得到前进变量HeadDist(n(u)),若搜索打开节点集OpenL中有前向连接线u的前向端点n(u),则剔除该元素,并判断前向搜索端点s对应轨迹标号ValidN(s)是否等于当前最远匹配节点Pnow,若是,则进入步骤S20426,否则,前向连接线u的前向端点n(u)对应轨迹标号ValidN(s)小于当前最远匹配节点Pnow,并进入步骤S20427;其中,前进变量HeadDist(n(u))的表达式如下:
HeadDist(n(u))= Euc(vp(ValidN(s)+1),n(u))+ LOCcost(n(u))
式中,Euc(vp(ValidN(s)+1),n(u))表示GPS轨迹点vp(ValidN(s))和前向连接线u的前向端点n(u)的欧式距离,LOCcost(n(u))表示前向连接线u的前向端点n(u)局部截断成本;
S20426、在搜索打开节点集OpenL起始位置插入前向连接线u的前向端点n(u),在对应搜索前进参考变量集OpenValueL起始位置插入前进变量HeadDist(n(u)),在搜索结束路网节点集CloseL中插入前向连接线u的前向端点n(u),并返回步骤S2044;
S20427、在搜索打开节点集OpenL末尾位置插入n(u),在对应搜索前进参考变量集OpenValueL末尾位置插入前进变量HeadDist(n(u)),当前向搜索端点s对应轨迹标号ValidN(s)等于终止节点Endp时,若前向连接线u在GPS轨迹点vp(Endp)邻近连线集NearL(Endp)中,则在搜索结束路网节点集CloseL中剔除前向搜索端点s,在搜索打开节点集OpenL起始位置插入前向连接线u的前向端点n(u),在对应搜索前进参考变量集OpenValueL起始位置插入0以及在搜索结束路网节点集CloseL插入前向连接线u的前向端点n(u),并返回步骤S2043;
S20428、当前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))小于终止节点Endp时,计算前进变量HeadDist(n(u))等于GPS轨迹点vp(ValidN(s)和n(u)的欧式距离Euc(vp(ValidN(n(u))+1)以及前向连接线u的前向端点n(u))和前向连接线u的前向端点n(u)局部截断成本LOCcost(n(u))之和,若搜索打开节点集OpenL中有前向连接线u的前向端点n(u),则剔除前向连接线u的前向端点n(u),并判断前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))是否大等于当前最远匹配节点Pnow,若是,则进入步骤S20429,否则,进入步骤S20430;其中,所述前进变量HeadDist(n(u))的表达式如下:
HeadDist(n(u))=(vp(ValidN(n(u))+1)+LOCcost(n(u))
式中,Euc(vp(ValidN(n(u))+1)表示GPS轨迹点vp(ValidN(s))和n(u)的欧式距离Euc,LOCcost(n(u))表示前向连接线u的前向端点n(u)局部截断成本;
S20429、在搜索打开节点集OpenL起始位置插入前向连接线u的前向端点n(u),在对应搜索前进参考变量集OpenValueL起始位置插入前进变量HeadDist(n(u)),并返回步骤S2044;
S20430、判断前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))是否大于当前最远匹配节点Pnow,若是,则进入步骤S20431,否则,前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))小于等于当前最远匹配节点Pnow,并进入步骤S20432;
S20431、更新当前最远匹配节点Pnow为前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u)),并清空搜索结束路网节点集CloseL集合,插入前向连接线u的前向端点n(u),并返回步骤S2044;
S20432、在搜索打开节点集OpenL末尾位置插入前向连接线u的前向端点n(u),在对应搜索前进参考变量集OpenValueL末尾位置插入前进变量HeadDist(n(u)),当前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))等于终止节点Endp时,若前向连接线u在GPS轨迹点vp(Endp)邻近连线集NearL(Endp)中,在搜索打开节点集OpenL起始位置插入n(u),在对应搜索前进参考变量集OpenValueL起始位置插入0,并返回步骤S2043;
S3、由当前搜索终点vp(s)回溯所述最佳地图匹配路径,遍历获取沿途各GPS轨迹点的最佳匹配结果,并汇总输出匹配结果统计表,其实现方法如下:
S301、由末点vp(k)回溯最佳匹配路径,遍历获取沿途各GPS轨迹点,并根据沿途GPS轨迹点,获取搜索结束路网节点集CloseL各元素,遍历所述搜索结束路网节点集CloseL选择一最优元素作为匹配路径回溯点,其实现方法如下:
S3011、由末点vp(k)回溯所述最佳匹配路径,遍历获取沿途各GPS轨迹点,并根据沿途GPS轨迹点,获取搜索结束路网节点集CloseL各元素;
S3012、对所述搜索结束路网节点集CloseL中各元素道路节点建立循环,并初始化最小总路径加权成本MinCost等于1000000,当节点对应轨迹标号ValidN(s)等于当前最远匹配节点Pnow时,建立最优局部路径终点搜索迭代m=false,以及初始化当前搜索路网节点CrtN为前向搜索端点s,并进入步骤S3013;
S3013、检查当前最远匹配节点Pnow附近是否存在前向搜索端点s途径连接线集的最后一个元素SPvia(s).last,若是,则找到局部最优终点,并进入步骤S3015,否则,进入步骤S3014;
S3014、若前向搜索端点s途径连接线集的元素数量SPvia(s)不为空值,令路径回溯端点CrtEndN等于前向搜索端点s途径连接线SPvia(s).tail,并返回步骤S3012;
S3015、根据找到的路径回溯端点CrtEndN及所属连接线路径回溯端点CrtEndN途径连接线SPvia(CrtN),计算得到路径总成本TotalCost,并判断所述路径总成本TotalCost是否小于最小总路径加权成本MinCost,若是,则更新最小总路径加权成本MinCost等于路径总成本TotalCost以及最佳匹配尾节点BestEndN等于路径回溯端点CrtEndN,进入下一备选尾节点,并返回步骤S3011,否则,遍历完搜索结束路网节点集CloseL,选择一最优元素作为匹配路径回溯点,并进入步骤S302;其中,路径总成本TotalCost的表达式如下:
TotalCost=SPcost(CrtN)+PWcost(CrtN)+Euc(vp(Pnow),CrtN)
式中,SPcost(CrtN)表示路径回溯端点CrtEndN的路径物理成本集,PWcost(CrtN)表示路径回溯端点CrtEndN的GPS轨迹点加权成本集,Euc(vp(Pnow),CrtN)表示GPS轨迹点vp(Pnow)和路径回溯端点CrtEndN的欧式距离;
S302、根据所述匹配路径回溯点,以最优匹配尾节点BestEndN为尾节点回溯完成当前轨迹段匹配过程,其实现方法如下:
S3021、更新起始节点Startp为当前最远匹配节点Pnow+1,并分别初始化当前回溯GPS轨迹点CrtP等于当前最远匹配节点Pnow、当前回溯尾节点CrtEndN等于最佳匹配尾节点BestEndN以及回溯指示变量BackCk等于端点BestEndN途径连接线SPvia(BestEndN),建立回溯迭代,并判断回溯迭代的回溯指示变量BackCk是否为空值,若是,则进入步骤S3022,否则进入步骤S3023;
S3022、检查是否已回溯到路网路径起点,若是,则直接终止迭代,并进入步骤S3023,否则,返回步骤S3021;
S3023、建立从当前回溯GPS轨迹点CrtP到上一起始节点Lastp的逆序循环k;
S3024、当匹配结果变量Match(k)等于-1时,若路径回溯端点CrtEndN途径连接线SPvia(CrtEndN)在邻近连线集NearL(k)中,则更新匹配结果变量Match(k)等于路径回溯端点CrtEndN途径连接线SPvia(CrtEndN),最优匹配权重MatchW(k)等于节点k匹配连接线的匹配权重vp(k).Weight(Match(k));以及
当匹配结果变量Match(k)大于-1时,若路径回溯端点CrtEndN途径连接线SPvia(CrtEndN)在邻近连线集NearL(k)中,且轨迹点vp(k)对应该连接线的匹配权重vp(k).Weight(SPvia(CrtEndN))小于最佳匹配权重MatchW(k),则匹配结果变量Match(k)为路径回溯端点CrtEndN途径连接线SPvia(CrtEndN),最佳匹配权重MatchW(k)为节点k匹配连接线的匹配权重vp(k).Weight(Match(k)),若路径回溯端点CrtEndN途径连接线SPvia(CrtEndN)不在邻近连线集NearL(k)中,且路径回溯端点CrtEndN对应轨迹标号ValidN(CrtEndN)小于当前回溯GPS轨迹点CrtP时,则当前回溯GPS轨迹点CrtP为当前回溯GPS轨迹点CrtP-1;
S3025、令k为k-1,并继续循环,若判断循环是否结束,若是,则进入步骤S3026,否则,返回步骤S3024;
S3026、判断回溯指示变量BackCk是否等于空值,若否,则返回步骤S3023,否则,回溯指示变量BackCk等于空值,迭代结束,从而实现以最优匹配尾节点BestEndN为尾节点回溯完成当前轨迹段的匹配过程,并进入步骤S303;
S303、根据当前匹配轨迹段回溯结果,输出从GPS轨迹点vp(Lastp)到GPS轨迹点vp(Pnow)中各GPS轨迹点的匹配结果,并分别清空所有已修改路网节点集NList中涉及路网节点各途径连接线集SPvia、路径物理成本集SPcost、局部截断成本集LOCcost、GPS轨迹点加权成本集PWcost、局部轨迹增量集Padd、对应轨迹标号集ValidN以及端点出发截断成本集StartCut;
S304、判断起始节点Startp是否大于终止节点Endp,若是,则当前出行GPS轨迹点全部匹配结束,并汇总输出匹配结果统计表,并进入步骤S4,否则,起始节点Startp小于终止节点Endp,并进入步骤S4;
S4、根据所述匹配结果统计表,判断当前搜索终点vp(s)是否为末点vp(k),若是,则当前搜索终点vp(s)为末点vp(k),完成高效GPS轨迹地图的匹配,否则,则以vp(s+1)作为地图匹配首点,并返回步骤S2,其实现方法如下:
S401、根据所述匹配结果统计表,判断当前搜索终点vp(s)是否为末点vp(k),若是,则当前搜索终点vp(s)为末点vp(k),完成高效GPS轨迹地图的匹配,否则,则以vp(s+1)作为地图匹配首点,并进入步骤S402;
S402、输出首点vp(1)至中断点vp(s)的匹配结果,并从下一点vp(s+1)到末点vp(k)执行步骤S2至S3,直至完成高效GPS轨迹地图的匹配。
本实施例中,对西安市2020年1月11日期间使用“GPSkit”人工采集GPS轨迹数据(234公里,26段轨迹,10445轨迹点)进行匹配校验,如图2所示,图2为实验数据分布地图。
本实施例中,其他6种对比轨迹匹配方法包括,4种步进式匹配算法:STM,基于时空分析的匹配算法;HMM,隐式马尔科夫匹配算法;MDP,多准则动态规划匹配算法;LBMM,基于轨迹局部特征的匹配算法;2种分段式匹配算法:SMRI,基于MRI系统的分段匹配算法;SRF,基于轨迹特征的分段匹配算法,如图3和图4所示,图3为匹配精度对比曲线,图4为匹配速度对比曲线,其中精度计算方式为正确匹配点数量与全部轨迹点数量之比;速度计算方式为每一千个轨迹点所需匹配时间(秒)的以10为底对数值。
本实施例中,本发明基于“路径搜索-轨迹点空间加权”逻辑的匹配算法,算法实现了可靠高效的以“路径搜索导向的轨迹点匹配逻辑”替代传统的“轨迹点导向的路径搜索逻辑”,既避免了传统匹配逻辑中繁复低效的地图数据调用过程,也解决了新兴算法中存在回溯死循环问题,极大提升了地图匹配工作效率。
Claims (5)
1.一种高效GPS轨迹地图匹配方法,其特征在于,包括以下步骤:
S1、获取任一车辆的GPS经过的若干个GPS轨迹点,并对所述若干个GPS轨迹点进行初始化操作,得到有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)};
S2、在所述有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)}中,以首点vp(1)建立地图匹配工作前向迭代,利用以GPS轨迹点导向的路径搜索算法得到当前搜索终点vp(s);其中,所述前向迭代为:以首点vp(1)起始,逐点迭代向后搜索匹配路径;
S3、由当前搜索终点vp(s)回溯最佳地图匹配路径,遍历获取沿途各GPS轨迹点的最佳匹配结果,并汇总输出匹配结果统计表;
S4、根据所述匹配结果统计表,判断当前搜索终点vp(s)是否为末点vp(k),若是,则当前搜索终点vp(s)为末点vp(k),完成高效GPS轨迹地图的匹配,否则,则以vp(s+1)作为地图匹配首点,并返回步骤S2;
所述步骤S3包括以下步骤:
S301、由末点vp(k)回溯所述最佳地图 匹配路径,遍历获取沿途各GPS轨迹点,并根据沿途GPS轨迹点,获取搜索结束路网节点集CloseL各元素,遍历所述搜索结束路网节点集CloseL选择一最优元素作为匹配路径回溯点;
S302、根据所述匹配路径回溯点,以最优匹配尾节点BestEndN为尾节点回溯完成当前轨迹段匹配过程;
S303、根据当前匹配轨迹段回溯结果,输出从GPS轨迹点vp(Lastp)到GPS轨迹点vp(Pnow)中各GPS轨迹点的匹配结果,并分别清空所有已修改路网节点集NList中涉及路网节点各途径连接线SPvia、路径物理成本SPcost、局部截断成本LOCcost、GPS轨迹点加权成本PWcost、局部轨迹增量Padd、对应轨迹标号ValidN以及端点出发截断成本StartCut;
S304、判断起始节点Startp是否大于终止节点Endp,若是,则当前出行GPS轨迹点全部匹配结束,并汇总输出匹配结果统计表,并进入步骤S4,否则,起始节点Startp小于终止节点Endp,并进入步骤S4;
所述步骤S301包括以下步骤:
S3011、由末点vp(k)回溯所述最佳地图 匹配路径,遍历获取沿途各GPS轨迹点,并根据沿途GPS轨迹点,获取搜索结束路网节点集CloseL各元素;
S3012、对所述搜索结束路网节点集CloseL中各元素道路节点建立循环,并初始化最小总路径加权成本MinCost等于1000000,当节点对应轨迹标号ValidN(s)等于当前最远匹配节点Pnow时,建立最优局部路径终点搜索迭代m=false,以及初始化当前搜索路网节点CrtN为前向搜索端点s,并进入步骤S3013;
S3013、检查当前最远匹配节点Pnow附近是否存在前向搜索端点s途径连接线集的最后一个元素SPvia(s).last,若是,则找到局部最优终点,并进入步骤S3015,否则,进入步骤S3014;
S3014、若前向搜索端点s途径连接线集的元素数量SPvia(s)不为空值,令路径回溯端点CrtEndN等于前向搜索端点s途径连接线SPvia(s).tail,并返回步骤S3012;
S3015、根据找到的路径回溯端点CrtEndN及所属连接线路径回溯端点CrtEndN途径连接线SPvia(CrtN),计算得到路径总成本TotalCost,并判断所述路径总成本TotalCost是否小于最小总路径加权成本MinCost,若是,则更新最小总路径加权成本MinCost等于路径总成本TotalCost以及最佳匹配尾节点BestEndN等于路径回溯端点CrtEndN,进入下一备选尾节点,并返回步骤S3011,否则,遍历完搜索结束路网节点集CloseL,选择一最优元素作为匹配路径回溯点,并进入步骤S302;其中,路径总成本TotalCost的表达式如下:
TotalCost=SPcost(CrtN)+PWcost(CrtN)+Euc(vp(Pnow),CrtN)
式中,SPcost(CrtN)表示路径回溯端点CrtEndN的路径物理成本集,PWcost(CrtN)表示路径回溯端点CrtEndN的GPS轨迹点加权成本集,Euc(vp(Pnow),CrtN)表示GPS轨迹点vp(Pnow)和路径回溯端点CrtEndN的欧式距离;
所述步骤S302包括以下步骤:
S3021、更新起始节点Startp为当前最远匹配节点Pnow+1,并分别初始化当前回溯GPS轨迹点CrtP等于当前最远匹配节点Pnow、当前回溯尾节点CrtEndN等于最佳匹配尾节点BestEndN以及回溯指示变量BackCk等于端点BestEndN途径连接线SPvia(BestEndN),建立回溯迭代,并判断回溯迭代的回溯指示变量BackCk是否为空值,若是,则进入步骤S3022,否则进入步骤S3023;
S3022、检查是否已回溯到路网路径起点,若是,则直接终止迭代,并进入步骤S3023,否则,返回步骤S3021;
S3023、建立从当前回溯GPS轨迹点CrtP到上一起始节点Lastp的逆序循环k;
S3024、当匹配结果变量Match(k)等于-1时,若路径回溯端点CrtEndN途径连接线SPvia(CrtEndN)在邻近连线集NearL(k)中,则更新匹配结果变量Match(k)等于路径回溯端点CrtEndN途径连接线SPvia(CrtEndN),最优匹配权重MatchW(k)等于节点k匹配连接线的匹配权重vp(k).Weight(Match(k));以及
当匹配结果变量Match(k)大于-1时,若路径回溯端点CrtEndN途径连接线SPvia(CrtEndN)在邻近连线集NearL(k)中,且轨迹点vp(k)对应该连接线的匹配权重vp(k).Weight(SPvia(CrtEndN))小于最佳匹配权重MatchW(k),则匹配结果变量Match(k)为路径回溯端点CrtEndN途径连接线SPvia(CrtEndN),最佳匹配权重MatchW(k)为节点k匹配连接线的匹配权重vp(k).Weight(Match(k)),若路径回溯端点CrtEndN途径连接线SPvia(CrtEndN)不在邻近连线集NearL(k)中,且路径回溯端点CrtEndN对应轨迹标号ValidN(CrtEndN)小于当前回溯GPS轨迹点CrtP时,则当前回溯GPS轨迹点CrtP为当前回溯GPS轨迹点CrtP-1;
S3025、令k为k-1,并继续循环,若判断循环是否结束,若是,则进入步骤S3026,否则,返回步骤S3024;
S3026、判断回溯指示变量BackCk是否等于空值,若否,则返回步骤S3023,否则,回溯指示变量BackCk等于空值,迭代结束,从而实现以最优匹配尾节点BestEndN为尾节点回溯完成当前轨迹段的匹配过程,并进入步骤S303。
2.根据权利要求1所述的高效GPS轨迹地图匹配方法,其特征在于,所述步骤S1包括以下步骤:
S101、获取任一车辆的GPS经过的若干个GPS轨迹点;
S102、将所述若干个GPS轨迹点分离为分段集合Trip(a)={T1,T2,…,Ta,…,Tn},其中,Ta表示一个分段,且所述Ta分段内包括多个GPS轨迹点,Tn表示总分段数;
S103、从分段Ta内的多个GPS轨迹点{ p(1),p(2),…,p(i),…,p(n)}中任选一个GPS轨迹点p(i)作为当前GPS轨迹点,其中,p(n)表示总的GPS轨迹点;
S104、判断所述当前GPS轨迹点p(i)至p(i+1)的直线速度是否大于300km/h,若是,则剔除当前GPS轨迹点p(i),转入下一个GPS轨迹点p(i+1),并重复步骤S104,否则,进入步骤S105;或
判断所述当前GPS轨迹点p(i)与p(i+1)的间隔时间是否小于等于0,若是,则剔除当前GPS轨迹点p(i),转入下一个GPS轨迹点p(i+1),并重复步骤S104,否则,进入步骤S105;
S105、设当前GPS轨迹点的上一累计行驶距离变量为p(i).lastD;
S106、判断所述p(i).lastD是否小于20米,若是,则计算得到GPS轨迹点p(i-1)至p(i)的距离,并剔除GPS轨迹点p(i),并进入步骤S107,否则,所述p(i).lastD大于20米,并将当前GPS轨迹点p(i)= vp(l)纳入有效节点列表VP={vp(1),vp(2),…,vp(k)},并进入步骤S107;
S107、判断分段Ta内是否所有的GPS轨迹点均被作为当前GPS轨迹点,若是,则建立有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)},并获取所述GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)}中各GPS轨迹点k在地图数据中的待匹配邻近连接线集合NearL(k),并初始化匹配结果变量Match(k)=-1,最佳匹配权重MatchW(k)=10000,完成有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)}的建立,并进入步骤S2,否则,返回步骤S101。
3.根据权利要求1所述的高效GPS轨迹地图匹配方法,其特征在于,所述步骤S2包括以下步骤:
S201、在所述有效GPS轨迹点列表VP={vp(1),vp(2),…,vp(k)}中,以首点vp(1)建立地图匹配工作前向迭代;
S202、根据所述地图匹配工作前向迭代,设有效GPS列表VP={vp(1),vp(2),…,vp(k)}的起始节点为Startp,终止节点为Endp;
S203、判断所述起始节点Startp是否小于等于终止节点Endp,若是,则进入步骤S204,否则,起始节点Startp大于终止节点Endp,完成GPS轨迹的全部匹配,得到首点vp(1)至末点vp(k)的最佳地图匹配路径,并进入步骤S3;
S204、利用以GPS轨迹点导向的路径搜索算法搜索起始节点Startp至终止节点Endp的最短路径,并判断路径搜索的迭代过程是否结束,若是,则获取备选路径,并进入步骤S3,否则,重复步骤S204,直至路径搜索迭代完成。
4.根据权利要求3所述的高效GPS轨迹地图匹配方法,其特征在于,所述步骤S204包括以下步骤:
S2041、对所述起始节点Startp进行匹配变量初始化处理,所述匹配变量包括上一起始节点Lastp等于起始节点Startp、当前最远匹配节点Pnow、已修改路网节点集NList、搜索打开节点集OpenL、对应搜索前进参考变量集OpenValueL、搜索结束路网节点集CloseL以及起点邻近路网连接线集NearL(Startp);
S2042、对所述起点邻近路网连接线集NearL(Startp)中各连接线建立地图匹配工作循环;
S2043、判断各连接线是否满足出发条件,若是,则将各连接线的对应端点纳入所述搜索打开节点集OpenL,并分别更新所述对应搜索前进参考变量集OpenValueL、已修改路网节点集NList以及更新各连接线对应前向搜索端点s的搜索属性集Search(s),且当循环结束时,所述搜索打开节点集OpenL不为空集,进入步骤S2044;否则,对所述起始节点Startp选取邻近匹配值最大的连接线作为该点匹配结果,并更新起始节点Startp等于起始节点Startp+1,并返回步骤S202,其中,所述端点搜索属性集Search(s)包括端点出发截断成本StartCut(s)、路径物理成本SPcost(s)、局部截断成本LOCcost(s)、GPS轨迹点加权成本PWcost(s)、对应轨迹标号ValidN(s)、局部轨迹增量Padd(s)以及途径连接线SPvia(s);
S2044、对所述搜索打开节点集OpenL中各路网搜索前向搜索端点s建立迭代,并判断所述迭代的结束要条件是否为搜索打开节点集OpenL已为空集,若是,则获取备选路径,并进入步骤S3,否则,进入步骤S2045;
S2045、选取所述搜索打开节点集OpenL中首个前向搜索端点s开展搜索,分别获取对应轨迹标号ValidN(s)以及前向搜索端点s的对应搜索前进参考变量OpenValueL值OpenValueL.begin,并判断所述对应轨迹标号ValidN(s)是否大于起始节点Startp-1,若是,则从搜索打开节点集OpenL以及对应前向搜索端点s的首个对应搜索前进参考变量集OpenValueL中剔除前向搜索端点s及其对应的前进变量HeadDist,并进入步骤S2046,否则,进入步骤S2048;
S2046、若所述对应轨迹标号ValidN(s)小于终止节点Endp,且所述对应轨迹标号ValidN(s)小于当前最远匹配节点Pnow,则计算得到前进判断距离Jdist,并进入步骤S2047;或
若所述对应轨迹标号ValidN(s)小于终止节点Endp,且所述局部轨迹增量Padd(s)=0,则计算得到前进判断距离Jdis,并进入步骤S2047;
S2047、判断前向搜索端点s的对应搜索前进参考变量的值OpenValueL(s)是否大于2*前进判断距离Jdist,且前进判断距离Jdist大于250米,若是,则返回步骤S2045,否则,进入步骤S2048;或
判断所述前向搜索端点s的对应搜索前进参考变量的值OpenValueL(s)是否大于450米且前进判断距离Jdist小于等于250米,若是,则返回步骤S2045,否则,进入步骤S2048;
S2048、对当前搜索前向搜索端点s各前向连接线集合ForwardL建立循环,并提取所述前向连接线u及下一路网节点n(u),当途径连接线SPvia(s)不为空值时,若前向搜索端点s途径连接线SPvia(s)等于前向连接线u时,跳至前向连接线集合ForwardL下一连接线,并继续计算前向连接线u与GPS轨迹点vp(ValidN(s))运动方向夹角MoveAng(u);
S2049、判断所述运动方向夹角MoveAng(u)是否大于等于100度,若是,则跳至前向连接线集合ForwardL中下一前向连接线u,并返回步骤S2048,否则,将前向连接线u按运动方向夹角MoveAng(u)从小到大顺序插入拓展连线集NextL,并在循环结束后进入步骤S20410;
S20410、对拓展连线集NextL中元素建立前向搜索循环,提取前向连接线u及下一路网节点n(u),并初始化局部GPS轨迹点加权变量PWac=0、已匹配GPS轨迹点序号Sernow=对应轨迹标号ValidN(s)、局部增量匹配点数AddN=0以及掉头指示变量TurnIndi=false;
S20411、当已匹配GPS轨迹点序号Sernow小于终止节点Endp时,初始化迭代指示变量Indi=true,并建立前向轨迹匹配增益,判断迭代结束条件是否为迭代指示变量Indi=false,若是,则进入步骤S20412,否则,进入步骤S20415;
S20412、令已匹配GPS轨迹点序号Sernow为已匹配GPS轨迹点序号Sernow+1,在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中搜索前向连接线u,并判断前向连接线u是否不在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中,若是,则进入步骤S20413,否则,前向连接线u在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中,并进入步骤S20414;或
令已匹配GPS轨迹点序号Sernow为已匹配GPS轨迹点序号Sernow+1,在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中搜索前向连接线u,并判断已匹配GPS轨迹点序号Sernow等于终止节点Endp时,迭代结束条件是否为迭代指示变量Indi=false,若是,则进入步骤S20413,否则,前向连接线u在GPS轨迹点vp(Sernow)邻近连线集NearL(Sernow)中,并进入步骤S20414;
S20413、判断局部增量匹配点数AddN是否等于0,若是,则进入步骤S20415,否则,则局部增量匹配点数AddN大于0,并进入步骤S20416;
S20414、分别令局部增量匹配点数AddN为局部增量匹配点数AddN+1,以及令局部GPS轨迹点加权变量PWac为PWac+ vp(Sernow).Weight(u),且若GPS轨迹点存在掉头,则掉头指示变量TurnIndi=true,迭代指示变量Indi=false;当局部增量匹配点数AddN=0,则进入步骤S20415;并判断局部增量匹配点数AddN是否大于0,若是,则进入步骤S20421,否则,返回步骤S20412;
其中, vp(Sernow).Weight(u)表示GPS轨迹点vp;
S20415、当前向搜索端点s大于起始节点Startp时,判断前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))是否为空值,若是,则进入步骤S20416,否则,进入步骤S20417;
S20416、计算得到局部搜索成本Costnow,并令前向连接线u的前向端点n(u)的局部截断成本LOCcost(n(u))=Costnow,前向连接线u的前向端点n(u)的途径连接线SPvia(n(u))=u,前向连接线u的前向端点n(u)的局部轨迹增量Padd(n(u))=0,前向连接线u的前向端点n(u)的路径物理成本SPcost(n(u))= SPcost(s)+ Length(u),前向连接线u的前向端点n(u)的GPS轨迹点加权成本PWcost(n(u))= PWac,在已修改路网节点集NList末尾插入n(u),并进入步骤S20419,其中,所述局部搜索成本Costnow的表达式如下:
Costnow=LOCcost(s) +Length(u)
式中,LOCcost(s)表示前向搜索端点s的局部截断成本,Length(u)表示前向连接线u的长度;
S20417、判断前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))是否等于前向搜索端点s对应轨迹标号ValidN(s),若是,则进入步骤S20418,否则,前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))小于前向搜索端点s对应轨迹标号ValidN(s),并进入步骤S20419;
S20418、根据前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))计算得到匹配路径成本Cost1,以及根据计算得到前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u)),若匹配路径成本Cost1小于匹配路径成本Cost2,则计算得到前向连接线u的前向端点n(u)局部截断成本LOCcost(n(u)),并令前向连接线u的前向端点n(u)途径连接线SPvia(n(u))=u,令前向连接线u的前向端点n(u)局部轨迹增量Padd(n(u))=0,以及计算得到前向连接线u的前向端点n(u)路径物理成本SPcost(n(u))以及令前向连接线u的前向端点n(u)GPS轨迹点加权成本PWcost(n(u))等于前向搜索端点s的GPS轨迹点加权成本PWcost(s),并进入步骤S20420,其中,所述匹配路径成本Cost的表达式如下:
Cost1=SPcost(s)+Length(u)+PWcost(s)
式中,SPcost(s)表示前向搜索端点s路径物理成本,Length(u)表示前向连接线u的长度,PWcost(s)表示前向搜索端点s的GPS轨迹点加权成本;
所述匹配路径成本Cost2的表达式如下:
Cost2=SPcost(n(u))+PWcost(n(u))
式中,SPcost(n(u))表示前向连接线u的前向端点n(u)路径物理成本,PWcost(n(u))表示前向连接线u的前向端点n(u)GPS轨迹点加权成本;
所述前向连接线u的前向端点n(u)局部截断成本LOCcost(n(u))的表达式如下:
LOCcost(n(u))=LOCcost(s)+Length(u)
式中,LOCcost(s)表示,前向搜索端点s局部截断成本,Length(u)表示前向连接线u的长度;
SPcost(n(u))=SPcost(s)+Length(u)
式中,SPcost(s)表示前向搜索端点s路径物理成本,Length(u)表示前向连接线u的长度;
S20419、根据前向搜索端点s局部截断成本LOCcost(s)以及前向连接线u的长度Length(u)计算得到前进变量HeadDist,并令前向连接线u的前向端点n(u)的局部截断成本LOCcost(n(u))=HeadDist,前向连接线u的前向端点n(u)的途径连接线SPvia(n(u))=u,前向连接线u的前向端点n(u)的局部轨迹增量Padd(n(u))=0,前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))= ValidN(s),前向连接线u的前向端点n(u)的路径物理成本SPcost(n(u))=SPcost(s)+Length(u),前向连接线u的前向端点n(u)的GPS轨迹点加权成本PWcost(n(u))=PWcost(s),并进入步骤S20425;其中,所述前进变量HeadDist的表达式如下:
HeadDist=LOCcost(s)+Length(u)
式中,LOCcost(s)表示前向搜索端点s局部截断成本,Length(u)表示前向连接线u的长度;
S20420、根据所述前向搜索端点s对应轨迹标号ValidN(s)计算得到当前匹配GPS轨迹点进度Mnow,并判断前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))是否为空值,若是,则进入步骤S20421,否则,进入步骤S20422;其中,所述当前匹配GPS轨迹点进度Mnow的表达式如下:
Mnow=ValidN(s)+AddN
式中,ValidN(s)表示前向搜索端点s对应轨迹标号,AddN表示局部增量匹配点数;
S20421、计算得到局部搜索成本Costnow以及令前向变量HeadDist为GPS轨迹点vp(Mnow)和前向连接线u的前向端点n(u)的欧式距离Euc(vp(Mnow), n(u)),并令前向连接线u的前向端点n(u)的局部截断成本LOCcost(n(u))=HeadDist,前向连接线u的前向端点n(u)的途径连接线SPvia(n(u))=u,前向连接线u的前向端点n(u)的局部轨迹增量Padd(n(u))=AddN,前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))=Mnow,前向连接线u的前向端点n(u)的路径物理成本SPcost(n(u))=SPcost(s)+Costnow,前向连接线u的前向端点n(u)的GPS轨迹点加权成本PWcost(n(u))=PWcost(s)+ PWac,以及在已修改路网节点集NList末尾插入n(u),并进入步骤S0425,其中,所述局部搜索成本Costnow的表达式如下:
Costnow=Length(u)-StartCut(s)
式中,Length(u)表示前向连接线u的长度,StartCut(s)表示前向搜索端点s出发截断成本;
S20422、判断前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))是否等于前向搜索端点s对应轨迹标号ValidN(s),若是,则进入步骤S20423,否则,前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))小于当前匹配GPS轨迹点进度Mnow,并进入步骤S20424;
S20423、分别计算得到匹配路径成本Cost1以及匹配路径成本Cost2,若匹配路径成本Cost1小于匹配路径成本Cost2,则令前进变量HeadDist等于GPS轨迹点vp(Mnow)和n(u)的欧式距离Euc(vp(Mnow),n(u)),令前向连接线u的前向端点n(u)局部截断成本LOCcost(n(u))=HeadDist,前向连接线u的前向端点n(u)途径连接线SPvia(n(u))= u,前向连接线u的前向端点n(u)局部轨迹增量Padd(n(u))=AddN,以及分别计算得到前向连接线u的前向端点n(u)路径物理成本SPcost(n(u))以及前向连接线u的前向端点n(u)GPS轨迹点加权成本PWcost(n(u)),并进入步骤S20428;其中,所述匹配路径成本的表达式如下:
Cost1=SPcost(s)+Length(u)+PWcost(s)+PWac-StartCut(s)
式中,SPcost(s)表示前向搜索端点s路径物理成本,Length(u)表示前向连接线u的长度,PWcost(s)表示前向搜索端点s的GPS轨迹点加权成本,PWac表示局部GPS轨迹点加权变量,StartCut(s)表示前向搜索端点s出发截断成本;
所述匹配路径成本Cost2的表达式如下:
Cost2=SPcost(n(u))+PWcost(n(u))
式中,SPcost(n(u))表示前向连接线u的前向端点n(u)路径物理成本,PWcost(n(u))表示前向连接线u的前向端点n(u)GPS轨迹点加权成本;
所述前向连接线u的前向端点n(u)路径物理成本SPcost(n(u))的表达式如下:
SPcost(n(u))=SPcost(s)+Length(u)+StartCut(s)
式中,SPcost(s)表示前向搜索端点s路径物理成本,Length(u)表示前向连接线u的长度,StartCut(s)表示前向搜索端点s出发截断成本;
所述前向连接线u的前向端点n(u)GPS轨迹点加权成本PWcost(n(u))的表达式如下:
PWcost(n(u))=PWcost(s)+PWac
式中,PWcost(s)表示前向搜索端点s的GPS轨迹点加权成本,PWac表示局部GPS轨迹点加权变量;
S20424、执行前进变量HeadDist为GPS轨迹点vp(Mnow)和前向连接线u的前向端点n(u)的欧式距离Euc(vp(Mnow), n(u)),并计算得到局部搜索成本Costnow,以及令前向连接线u的前向端点n(u)的局部截断成本LOCcost(n(u))=HeadDist,前向连接线u的前向端点n(u)的途径连接线SPvia(n(u))=u,前向连接线u的前向端点n(u)的局部轨迹增量Padd(n(u))=AddN,前向连接线u的前向端点n(u)的对应轨迹标号ValidN(n(u))=Mnow,前向连接线u的前向端点n(u)的路径物理成本SPcost(n(u))=SPcost(s)+Costnow,前向连接线u的前向端点n(u)的GPS轨迹点加权成本PWcost(n(u))=PWcost(s)+PWac,并进入步骤S20428;其中,所述局部搜索成本Costnow的表达式如下:
Costnow=Length(u)-StartCut(s)
式中,Length(u)表示前向连接线u的长度,StartCut(s)表示前向搜索端点s出发截断成本;
S20425、当前向搜索端点s对应轨迹标号ValidN(s)小于终止节点Endp时,在搜索结束路网节点集CloseL中剔除前向搜索端点s,并计算得到前进变量HeadDist(n(u)),若搜索打开节点集OpenL中有前向连接线u的前向端点n(u),则剔除该元素,并判断前向搜索端点s对应轨迹标号ValidN(s)是否等于当前最远匹配节点Pnow,若是,则进入步骤S20426,否则,前向连接线u的前向端点n(u)对应轨迹标号ValidN(s)小于当前最远匹配节点Pnow,并进入步骤S20427;其中,前进变量HeadDist(n(u))的表达式如下:
HeadDist(n(u))= Euc(vp(ValidN(s)+1),n(u))+ LOCcost(n(u))
式中,Euc(vp(ValidN(s)+1),n(u))表示GPS轨迹点vp(ValidN(s))和前向连接线u的前向端点n(u)的欧式距离,LOCcost(n(u))表示前向连接线u的前向端点n(u)局部截断成本;
S20426、在搜索打开节点集OpenL起始位置插入前向连接线u的前向端点n(u),在对应搜索前进参考变量集OpenValueL起始位置插入前进变量HeadDist(n(u)),在搜索结束路网节点集CloseL中插入前向连接线u的前向端点n(u),并返回步骤S2044;
S20427、在搜索打开节点集OpenL末尾位置插入n(u),在对应搜索前进参考变量集OpenValueL末尾位置插入前进变量HeadDist(n(u)),当前向搜索端点s对应轨迹标号ValidN(s)等于终止节点Endp时,若前向连接线u在GPS轨迹点vp(Endp)邻近连线集NearL(Endp)中,则在搜索结束路网节点集CloseL中剔除前向搜索端点s,在搜索打开节点集OpenL起始位置插入前向连接线u的前向端点n(u),在对应搜索前进参考变量集OpenValueL起始位置插入0以及在搜索结束路网节点集CloseL插入前向连接线u的前向端点n(u),并返回步骤S2043;
S20428、当前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))小于终止节点Endp时,计算前进变量HeadDist(n(u))等于GPS轨迹点vp(ValidN(s)和n(u)的欧式距离Euc(vp(ValidN(n(u))+1)以及前向连接线u的前向端点n(u))和前向连接线u的前向端点n(u)局部截断成本LOCcost(n(u))之和,若搜索打开节点集OpenL中有前向连接线u的前向端点n(u),则剔除前向连接线u的前向端点n(u),并判断前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))是否大等于当前最远匹配节点Pnow,若是,则进入步骤S20429,否则,进入步骤S20430;其中,所述前进变量HeadDist(n(u))的表达式如下:
HeadDist(n(u))=(vp(ValidN(n(u))+1)+LOCcost(n(u))
式中,Euc(vp(ValidN(n(u))+1)表示GPS轨迹点vp(ValidN(s))和n(u)的欧式距离Euc,LOCcost(n(u))表示前向连接线u的前向端点n(u)局部截断成本;
S20429、在搜索打开节点集OpenL起始位置插入前向连接线u的前向端点n(u),在对应搜索前进参考变量集OpenValueL起始位置插入前进变量HeadDist(n(u)),并返回步骤S2044;
S20430、判断前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))是否大于当前最远匹配节点Pnow,若是,则进入步骤S20431,否则,前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))小于等于当前最远匹配节点Pnow,并进入步骤S20432;
S20431、更新当前最远匹配节点Pnow为前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u)),并清空搜索结束路网节点集CloseL集合,插入前向连接线u的前向端点n(u),并返回步骤S2044;
S20432、在搜索打开节点集OpenL末尾位置插入前向连接线u的前向端点n(u),在对应搜索前进参考变量集OpenValueL末尾位置插入前进变量HeadDist(n(u)),当前向连接线u的前向端点n(u)对应轨迹标号ValidN(n(u))等于终止节点Endp时,若前向连接线u在GPS轨迹点vp(Endp)邻近连线集NearL(Endp)中,在搜索打开节点集OpenL起始位置插入n(u),在对应搜索前进参考变量集OpenValueL起始位置插入0,并返回步骤S2043。
5.根据权利要求1所述的高效GPS轨迹地图匹配方法,其特征在于,所述步骤S4包括以下步骤:
S401、根据所述匹配结果统计表,判断当前搜索终点vp(s)是否为末点vp(k),若是,则当前搜索终点vp(s)为末点vp(k),完成高效GPS轨迹地图的匹配,否则,则以vp(s+1)作为地图匹配首点,并进入步骤S402;
S402、输出首点vp(1)至中断点vp(s)的匹配结果,并从下一点vp(s+1)到末点vp(k)执行步骤S2至S3,直至完成高效GPS轨迹地图的匹配。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110674847.8A CN113254562B (zh) | 2021-06-18 | 2021-06-18 | 一种高效gps轨迹地图匹配方法 |
PCT/CN2022/098815 WO2022262741A1 (zh) | 2021-06-18 | 2022-06-15 | 一种高效gps轨迹地图匹配方法 |
US18/015,348 US20240302172A1 (en) | 2021-06-18 | 2022-06-15 | Efficient map matching method for global positioning system (gps) trajectory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110674847.8A CN113254562B (zh) | 2021-06-18 | 2021-06-18 | 一种高效gps轨迹地图匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254562A CN113254562A (zh) | 2021-08-13 |
CN113254562B true CN113254562B (zh) | 2021-09-28 |
Family
ID=77188491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110674847.8A Active CN113254562B (zh) | 2021-06-18 | 2021-06-18 | 一种高效gps轨迹地图匹配方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240302172A1 (zh) |
CN (1) | CN113254562B (zh) |
WO (1) | WO2022262741A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254562B (zh) * | 2021-06-18 | 2021-09-28 | 长安大学 | 一种高效gps轨迹地图匹配方法 |
CN114061591B (zh) * | 2021-11-18 | 2022-07-12 | 东南大学 | 一种基于滑动窗数据回溯的等值线匹配方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109143291A (zh) * | 2018-06-29 | 2019-01-04 | 长安大学 | 一种车载gps轨迹空间索引精确匹配方法 |
CN109459047A (zh) * | 2018-12-24 | 2019-03-12 | 武汉大学 | 车辆高精度定位数据与导航地图精确匹配及变道行为探测方法 |
CN111174798A (zh) * | 2020-01-17 | 2020-05-19 | 长安大学 | 一种足式机器人路径规划方法 |
WO2021012492A1 (zh) * | 2019-07-24 | 2021-01-28 | 平安科技(深圳)有限公司 | 行车轨迹生成方法、装置、计算机设备及存储介质 |
CN112327338A (zh) * | 2021-01-05 | 2021-02-05 | 长安大学 | 一种快速车载gps轨迹精确地图匹配的方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100689773B1 (ko) * | 2005-07-27 | 2007-03-08 | 주식회사 현대오토넷 | 등산로 안내 기능을 가지는 네비게이션 시스템 및 등산로안내 방법 |
JP5064870B2 (ja) * | 2007-04-17 | 2012-10-31 | 株式会社日立製作所 | デジタル道路地図の生成方法及び地図生成システム |
US10281279B2 (en) * | 2016-10-24 | 2019-05-07 | Invensense, Inc. | Method and system for global shape matching a trajectory |
US11015941B2 (en) * | 2018-05-25 | 2021-05-25 | Here Global B.V. | Method and apparatus for path based map matching |
CN109405839B (zh) * | 2018-10-23 | 2022-04-12 | 南京林业大学 | 一种基于多路径的交通网络离线地图匹配算法 |
CN110209048A (zh) * | 2019-05-20 | 2019-09-06 | 华南理工大学 | 基于动力学模型的机器人时间最优轨迹规划方法、设备 |
CN111343585B (zh) * | 2020-02-28 | 2021-11-02 | 重庆邮电大学 | 一种基于隐马尔可夫模型的移动用户轨迹地图匹配方法 |
CN112082564B (zh) * | 2020-08-11 | 2022-09-06 | 东莞理工学院 | 一种交互式地图匹配方法及系统 |
CN112020012B (zh) * | 2020-08-18 | 2022-09-30 | 深圳诺地思维数字科技有限公司 | 一种移动轨迹重建及道路匹配方法、存储介质及服务器 |
CN112539754B (zh) * | 2020-11-12 | 2023-04-28 | 武汉光庭信息技术股份有限公司 | 一种基于rds-tmc的高精度地图与传统地图路径匹配方法及装置 |
CN113254562B (zh) * | 2021-06-18 | 2021-09-28 | 长安大学 | 一种高效gps轨迹地图匹配方法 |
-
2021
- 2021-06-18 CN CN202110674847.8A patent/CN113254562B/zh active Active
-
2022
- 2022-06-15 US US18/015,348 patent/US20240302172A1/en active Pending
- 2022-06-15 WO PCT/CN2022/098815 patent/WO2022262741A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109143291A (zh) * | 2018-06-29 | 2019-01-04 | 长安大学 | 一种车载gps轨迹空间索引精确匹配方法 |
CN109459047A (zh) * | 2018-12-24 | 2019-03-12 | 武汉大学 | 车辆高精度定位数据与导航地图精确匹配及变道行为探测方法 |
WO2021012492A1 (zh) * | 2019-07-24 | 2021-01-28 | 平安科技(深圳)有限公司 | 行车轨迹生成方法、装置、计算机设备及存储介质 |
CN111174798A (zh) * | 2020-01-17 | 2020-05-19 | 长安大学 | 一种足式机器人路径规划方法 |
CN112327338A (zh) * | 2021-01-05 | 2021-02-05 | 长安大学 | 一种快速车载gps轨迹精确地图匹配的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2022262741A9 (zh) | 2023-02-23 |
US20240302172A1 (en) | 2024-09-12 |
WO2022262741A8 (zh) | 2023-11-09 |
WO2022262741A1 (zh) | 2022-12-22 |
CN113254562A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112327338B (zh) | 一种快速车载gps轨迹精确地图匹配的方法 | |
CN113254562B (zh) | 一种高效gps轨迹地图匹配方法 | |
CN109143291B (zh) | 一种车载gps轨迹空间索引精确匹配方法 | |
CN109405839B (zh) | 一种基于多路径的交通网络离线地图匹配算法 | |
CN108763558B (zh) | 一种基于地图匹配的众包地图道路质量改进方法 | |
CN109059939A (zh) | 基于隐马尔科夫模型的地图匹配算法 | |
CN115586557B (zh) | 一种基于路网数据的车辆行驶轨迹纠偏方法及装置 | |
CN112067005B (zh) | 一种基于转弯点的离线地图匹配方法、装置及终端设备 | |
CN105184393A (zh) | 一种复杂路径下辅助路径还原方法 | |
CN113611115B (zh) | 一种基于路网敏感特征的车辆轨迹聚类方法 | |
CN110736471A (zh) | 基于隐马尔可夫模型的低频浮动车轨迹数据路网匹配方法 | |
CN109035783A (zh) | 一种基于公交gps轨迹的虚拟路网缺失路段自动识别方法 | |
CN112309118A (zh) | 一种基于时空相似度的车辆轨迹推算方法 | |
Liu et al. | Popular route planning with travel cost estimation from trajectories | |
CN111024079A (zh) | 一种根据多个位置点与路线进行匹配的方法和系统 | |
CN110598917A (zh) | 一种基于路径轨迹的目的地预测方法、系统及存储介质 | |
CN108132056A (zh) | 一种通过gps推断公交路径方法 | |
CN112033418A (zh) | 一种离线地图匹配方法 | |
Das et al. | Map enhanced route travel time prediction using deep neural networks | |
CN111397632A (zh) | 一种大规模路网的分块预处理路径规划方法 | |
CN111710160A (zh) | 一种基于浮动车数据的行程时间预测方法 | |
CN114993325A (zh) | 一种车辆gps地图道路匹配方法、装置及存储介质 | |
CN116821263B (zh) | 一种空间目标准实时关联定轨实现方法 | |
CN109584549A (zh) | 一种基于大规模浮动车数据的道路交通运行指数检测方法 | |
Satrinia et al. | Traffic speed prediction from GPS data of taxi trip using support vector regression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |