以下圖所示,一、二、3 這三個點是汽車的GPS定位結果,儘管汽車是在道路上,但定位結果與道路存在誤差。地圖匹配(Map Matching)是指將行車軌跡的經緯度採樣序列與數字地圖路網匹配的過程,其本質上是平面線段序列的模式匹配問題( Alt等,2003)。算法
在實際應用中,GPS採樣信號的質量會嚴重影響地圖匹配結果:採樣頻率的下降、定位偏差的加大、信號的丟失,都會使匹配的不許確性增長。這些狀況在實際應用中常常出現。如何在這些狀況下仍能保持較高的路徑匹配準確率是個值得研究的問題。測試
2012年ACM SIGSPATIAL首次設立的競賽,其內容就是地圖匹配。三年前本人有幸和國防科大的楊岸然博士一同參加了該競賽,收穫良多。spa
現有的算法可被分紅四類:幾何、拓撲、機率、高級。
a)基於幾何的算法考慮GPS點與道路的幾何信息,如距離、角度等;
b)基於拓撲的算法使用道路拓撲信息來控制;
c)機率方法經過考慮GPS點的機率;
d)高級的算法每每綜合考慮使用全面信息,有卡爾曼濾波、模糊邏輯模型、隱式馬爾可夫模型等等。索引
根據考慮採樣點的範圍,可分紅局部/增量算法、全局算法。
a)局部/增量算法是貪婪算法,每次肯定一個匹配點,下個點從已經肯定的匹配點開始。這些方法根據距離和方向類似性來找到局部最優勢或邊。(在線匹配)
b)全局算法是要從路網中找到一條與採樣軌跡最接近的匹配軌跡。爲了測量採樣軌跡和匹配軌跡的類似性,大多數算法使用「Frechet距離」或者是「弱Frechet距離」。還有時空匹配算法、投票算法等。(離線匹配)ip
根據軌跡數據的採樣頻率,現有的地圖匹配算法可分紅:
a)高頻採樣算法(全部局部算法、部分全局算法如Frechet距離判別法等)
b)低頻採樣算法(ST-matching算法、IVVM算法內存
通常認爲30s及其以上爲低頻採樣,1s~10s爲高頻採樣。it
a)路網數據: Washington State U.S.A.(有128萬條邊 )
b)GPS數據:採樣頻率爲1~30s,class
使用ST-Matching算法(Lou等,2009),該算法是一種全局算法,能綜合幾何信息( GPS點與道路的距離)、道路拓撲信息(最短路徑)、道路屬性信息(每條道路的限速),具備精度高,穩定性好等優勢。效率
a)空間因素權重(Fs)cli
b)時間因素權重(Ft)
問題:原始道路網數據的座標與軌跡點的座標並不在一個座標體系下,不能直接進行計算!
解決方法:使用PRJ4地圖投影庫將兩個數據投影到統一座標下。
問題:該路網有128萬條邊,咱們採用C++,若是讀取每條邊都進行new和delete操做,將執行128萬次,效率極低!
解決方法:使用內存池技術。
問題:候選集不一樣層次的候選點之間都要計算最短路徑,使用最經常使用的Dijkstra最短路徑算法效率極低!
解決方法:使用啓發式最短路徑算法:A-star算法。
問題:因爲競賽真實測試會使用不少不一樣的路網數據,因此創建索引不必,可是計算某一GPS點的候選集時路網全部數據會參與計算,效率很低;
解決方法:計算某一GPS點的候選集時,先進行切片過濾,好比以該GPS點爲中心,生成200m的正方形框,而後在該框裏創建新的道路網,這時計算候選集時只須要與該框內的道路網數據計算。