陳艷艷 李四洋 張云超



摘 要:浮動車GPS數據作為交通信息處理的基礎,隨著被監控車輛數量的高速增長,產生了海量GPS數據,對地圖匹配提出了挑戰。為了解決傳統匹配方法難以滿足匹配效率和精度的不足,提出一種針對海量GPS數據的實時并行地圖匹配算法,能夠同時保證較高匹配精度和運算效率。為構建一種面向實時數據流的高效、準確實時地圖匹配算法,首先通過引入速度、方向綜合權重因子對依賴歷史軌跡的離線地圖匹配算法進行重構,進而引入Spark Streaming分布式計算框架,實現地圖匹配算法的實時、并行運算,大幅提升實時地圖匹配效率。實驗結果表明,該算法在復雜路段的匹配準確率較常規拓撲匹配算法提高10%以上,整體匹配準確率達到95%以上;在匹配效率方面,較同等數量的單機服務器效率可提高4倍左右。實驗結果表明,該算法在由11臺機器組成的計算集群上實現8 000萬個GPS數據點的實時地圖匹配,證明了該算法可以完成城市地區的實時車輛匹配。
關鍵詞:海量; GPS; 并行計算; 地圖匹配; 實時計算; Spark
中圖分類號:TP391 文獻標志碼:A?文章編號:1001-3695(2024)05-008-1338-05
doi:10.19734/j.issn.1001-3695.2023.08.0424
Massive GPS data real-time map matching algorithm based on Spark Streaming
Abstract:Floating car GPS data serves as the foundation for processing traffic information, with the rapid increase in the number of monitored vehicles, a massive amount of GPS data is generated, posing great challenges to map matching. To address the shortcomings of traditional matching methods in terms of matching efficiency and accuracy, this paper proposed a real time parallel map matching algorithm for massive GPS data that ensured both high matching accuracy and computational efficiency. This paper firstly reconstructed an efficient and accurate real-time map matching algorithm for streaming data by introducing a comprehensive weight factor that considered velocity and direction to enhance the offline map matching algorithm that relied on historical trajectories. Then,it introduced the Spark Streaming distributed computing framework to achieve real-time and parallel computation of the map matching algorithm, significantly improving the efficiency of real-time map matching. Experimental results demonstrate that the proposed algorithm achieves more than a 10% increase in matching accuracy compared to conventional topological matching algorithms on complex road sections, with an overall matching accuracy of over 95%. In terms of matching efficiency, it achieves approximately a fourfold improvement compared to an equivalent number of standalone servers. The experimental results show that the proposed algorithm achieves real-time map matching of 80 million GPS data points on a computing cluster composed of 11 machines, proving that the proposed algorithm can achieve real-time vehicle matching in urban areas.
Key words:massive; GPS; parallel calculation; map matching; real-time computing; Spark
0 引言
道路上行駛的車輛裝備GPS,實時采集其運行的位置數據,是道路實時路況計算、交通事件檢測、交通趨勢預測等交通監管應用數據的基礎。由于GPS數據存在一定的偏移[1],地圖匹配處理將車輛GPS軌跡數據糾正到其行駛的路段上,為眾多智能交通應用提供必需的車輛行駛路徑信息,因此成為智能交通關鍵支撐算法。當前城市中對車輛實時監測的規模越來越大,例如在首都北京,實時監測的車輛數量已經接近100萬輛,同時在線的車輛數量峰值也達到60萬輛。意味著在1~5 s的高采樣頻率下,每秒會產生超過40萬條等待處理的車輛GPS數據。爆發增長的GPS數據對地圖匹配處理提出了嚴峻的挑戰。當前地圖匹配算法多數為串行匹配,運行于單機系統中,其中優秀的算法如Hmm地圖匹配算法[2]、PIF地圖匹配算法[3]等,匹配效率只能達到2萬條/s,遠不能滿足城市范圍大規模GPS數據實時匹配的要求。而將海量數據分散到多個單機系統中進行同步匹配的方法,則遇到計算任務分配困難、缺少負載均衡機制、出錯后難以自動恢復等弊端,難以工程化實施。伴隨著浮動車軌跡數據的增長和智能交通應用的多樣化和智能化,地圖匹配的效率和實時性需求越來越高。目前針對實時地圖匹配的研究,如文獻[4]提出了WI map-matching algorithm,首先使用基于權值的匹配算法將軌跡匹配在路鏈中,然后使用插值法對匹配路徑進行修正,對比實驗表明,WIMM效率相對于IVMM與STMM有極大提高。文獻[5]將浮動車行駛距離與GPS點偏移映射為狀態轉移概率與狀態顯示概率,提出基于隱馬爾可夫模型的地圖匹配算法。文獻[6]設計了基于Hmm的改進實時地圖匹配算法,并在新加坡路網的測試中表現較好。以上算法在提高準確率的同時難以兼顧效率,或為滿足效率需求而犧牲部分準確率,但在特殊應用場景下,人們希望能夠同時提升效率與準確率。
通過以上兩方面的分析,考慮到城市路網及路況的復雜性,針對海量GPS數據的實時匹配問題,本文通過引入速度權重因子,重構了一種新的地圖匹配算法以應對實時計算的需求,并針對匹配效率不足的問題,基于Spark Streaming計算框架實現了并行實時匹配計算。
1 實時地圖匹配算法
1.1 浮動車地圖匹配算法難點分析
浮動車數據是一段由時空關聯的車輛位置狀態信息組成的數據流,代表浮動車從開始到當前時刻的行駛軌跡。對于一輛浮動車,時間段
(t1,t2,…,tk)產生的k個點組成軌跡P,每個點pi由(ID,lat,lng,timestamp,speed,angle)等字段構成,ID代表這輛浮動車的唯一標識,timestamp表示定時數據采集時刻標識,lat和lng分別表示緯度和經度,speed表示車輛當前速度,angle表示車輛當前航向角。地圖匹配將浮動車GPS定位數據與數字地圖進行匹配,使目標點精確定位到路網中。在保證匹配精準度和強實時性的要求下,浮動車行駛環境、數據質量參差不齊,及存在海量數據等問題,給實時地圖匹配帶來了挑戰,具體難點如下:
a)車輛行駛環境及數據質量。近年來隨著定位技術的突破和浮動車采集設備性能的提升,采集到的定位數據精準度大大提升,但是車輛行駛環境受到建筑物、信號干擾、駕駛行為以及采集設備的采樣頻率等情況的影響,要求匹配算法具有精準度的同時具備較強的魯棒性,能夠應對各類異常數據。
b)海量數據處理及復雜路網。截止到2022年年底,北京市公路里程已達到2.2萬km,主要道路達到7 000 km以上,汽車保有量超過600萬輛,形成了較為復雜的城市路網和交通運行態勢,給地圖匹配的準確度和效率增加了難度。
1.2 實時地圖匹配算法選型
目前,地圖匹配算法可以分為幾何地圖匹配算法、拓撲地圖匹配算法及高級地圖匹配算法三大類。幾何分析法只考慮了浮動車軌跡與道路形狀的幾何關系,計算簡單,匹配效率較高,但是在實際應用中準確率較低,不適合在大部分路網中使用。高級地圖匹配算法[7,8],如模糊邏輯、隱馬爾可夫模型地圖匹配算法,將地圖匹配問題轉換為復雜數學模型,雖然匹配準確率較高,但是計算復雜度高、匹配效率低下,不適合海量浮動車數據的地圖匹配。而拓撲地圖匹配算法在大數據地圖匹配場景中應用最為廣泛,如文獻[9]所述,拓撲地圖匹配方法充分考慮了路段之間的拓撲關系,以及車輛定位位置與道路距離、車輛與道路方向夾角等參數對匹配結果的影響。相比于高級地圖匹配算法,拓撲地圖匹配算法能夠在保證較高匹配準確率的情況下盡可能地提高匹配效率[4,10]。文獻[11]提出一種LeapFrog拓撲地圖匹配算法,即在匹配過程中,當GPS點附近只有一條候選路鏈時,跳過該點與后續只對應一條候選路鏈的連續的GPS點。但是,LeapFrog拓撲地圖匹配算法使用了后續時刻的GPS點信息輔助判斷當前GPS點匹配路鏈(link),而在實時地圖匹配過程中,后續時刻GPS點信息是無法獲取的,該算法在離線GPS數據地圖匹配中表現良好,但在車輛實時監管、車輛導航等需要實時地圖匹配的應用中難以勝任。
通過對上述各類地圖匹配算法的分析,各匹配算法在提高準確率的同時難以兼顧效率,或為滿足效率需求而犧牲部分場景的準確率。考慮到實時地圖匹配算法對匹配效率的要求較高,本文下一步將以匹配效率較高的拓撲地圖匹配算法為基礎,結合浮動車在城市公路上的行駛特征,構建新的地圖匹配算法,兼顧匹配效率的同時提高算法準確率,使其滿足交通信息服務準確、實時、快速發布的需求。
1.3 實時地圖匹配算法構建
拓撲地圖匹配方法(topological map matching)如文獻[5]所述,充分考慮了路段之間的拓撲關系,以及車輛定位位置與道路距離、車輛與道路方向夾角等參數對匹配結果的影響。與效率較低的高級地圖匹配算法和準確率較差的幾何地圖匹配算法相比,拓撲地圖匹配算法在大部分場景下的計算準確率和效率均可達到較高水平[8],適合海量浮動車數據的實時匹配。
1.3.1 拓撲地圖匹配算法計算步驟
拓撲地圖匹配算法核心處理由候選路鏈計算、拓撲關系計算及路徑推測三個步驟組成,具體如下:
a)候選路鏈計算。在完成對車輛歷史軌跡{pi-1,pi-2,…}中各點的匹配之后,對于當前時刻GPS點pi ,根據pi的坐標以及地圖數據中路鏈的位置,計算出與點pi相距小于GPS點的最大偏移距離(通常為40 m)的所有候選路鏈Li,1,Li,2,…,Li,mi,并根據車輛GPS點偏移距離、車輛方向偏移角度計算各候選路鏈的距離權重和方向權重,其中距離權重WD(Lij) 和方向權重WH(Lij)的計算公式如下:
其中:di-1是前一GPS點與候選路鏈間的距離;di是當前GPS點與其候選路鏈間的距離;σ是可調整的權重系數;D是最大定位誤差半徑,本文設定為40 m。
其中:gi-1是前一GPS點的行進方向與候選路鏈方向之間的差值;gi是當前GPS點行進方向與候選路鏈方向之間的差值;μ是權重系數;G是候選路徑最大允許夾角,本文設為60°。
b)拓撲關系計算。根據路網拓撲結構,計算點pi-1、pi對應的候選路鏈Li-1,1,Li-1,2,…,Li-1,mi-1和 Li,1,Li,2,…,Li,mi之間所有可達路徑,作為浮動車,由點pi-1移動至pi時所有可能的路徑;并通過以下公式計算pi點對應候選路鏈的總權重值WS(Li,1),WS(Li,2),…,WS(Li,mi)。
其中:WD(Li,j)和WH(Li,j)分別為Li,j的距離權重和方向權重;WTR(Li-1,k,Li,j)和WLC(Li-1,k,Li,j)為候選路鏈Li-1,k與Li,j的轉向權重和拓撲權重。當兩條候選路鏈之間無可達路徑時,對應WTR與WLC設為0;當存在可達路徑時,WLC設為1,WTR將根據兩條路鏈的幾何屬性計算得到[12]。
c)路徑推測。比較各候選路徑的總權重,根據浮動車數據與路鏈屬性,推測出當前時刻浮動車最可能經過的路鏈,并保留點pi的所有權重值不為0的候選路鏈,用于支持下一時刻對車輛GPS點pi+1的權重計算。
1.3.2 實時地圖匹配算法構建
本文研究的實時地圖匹配場景的主要困難在于無法利用后續時刻GPS點的信息來推測候選路徑[6],在道路交叉點附近的GPS點對應的兩條候選路鏈(如圖1、2所示)距離相距較近、方向相似,對應的距離權重以及航向權重差別較小,難以分辨浮動車正確的行駛路鏈。但是對于低速運行的軌跡數據,由于在相同距離上采樣點的密集度較高,通過多定位點距離權重和方向權重綜合驗證,可以很好地進行候選路徑的推測。但是對中高速軌跡匹配(尤其是采樣點距離超過10 m),由于采樣點間隔較大,通過定位點距離權重和方向權重得出的候選路鏈有多條,如圖1所示,對于待匹配點P1的候選路鏈L1和L2,依據距離權重和方向權重,很難得出正確的判斷,P2、P3定位點亦是如此。因此,本文引入速度權重以輔助分辨交叉路口附近的浮動車的正確行駛線路。
城市道路主輔路、立交橋、環形路等區域中分叉拓撲結構多為一條主干道分叉為一條主干道與一條連接路,如圖2所示。其中主干道限速較高,連接路限速較低[13],通往連接路的浮動車在分叉口處選擇減速行駛,引入速度權重將有助于區分限速不同的分叉路鏈。
本文引入速度權重的權值對拓撲地圖匹配算法中的候選路鏈的總權重值WS進行調整,調整后的總權重WVS計算公式為
2 分布式實時地圖匹配算法計算實現
2.1 分布式計算框架選擇
實時地圖匹配的數據處理有以下幾個特點:a)能夠記錄數據流狀態,以便下一批次數據的處理需要上一次處理后的結果;b)對數據處理的效率與吞吐量要求較高;c)需要較高的容錯性,但是需保證每批數據僅被處理一次。
目前常用的流式實時分布式計算框架有Spark Strea-ming[14,15]和Storm[16],都能夠較好地記錄數據流狀態。Spark Streaming主要對某段時間的數據進行批量處理,具有較高的吞吐量,處理延時在秒級左右[17,18];在容錯性方面,Spark Streaming僅在處理級別上進行操作跟蹤,可以保證每個批量的記錄都被精確地處理一次,更適合處理事務性較高的場景。因此,相對于吞吐量較低,容錯開銷較大的Storm平臺,Spark Streaming框架更加適合用于并行的實時地圖匹配處理。
2.2 地圖匹配算法的并行實現
本文設計了一個基于Spark Streaming的分布式實時地圖匹配計算流程。在該流程中,首先將地圖劃分為多個網格,每個網格在經緯度直角坐標系中為等長寬的矩形;然后將不同網格分配至不同的計算單元,每個計算單元只計算指定網格內的浮動車數據。這樣,每個計算單元只讀取一次對應網格中的路鏈數據就可以完成網格內所有點候選路鏈的計算,減少了地圖數據加載次數,在理論上能夠較大地提升匹配效率。另一方面,將候選路鏈計算的時間復雜度O(mn)作為每個計算單元計算時消耗的估計量,可以作為每個節點分配計算單元時負載均衡優化的參考,其中m為網格中路鏈密度,n為網格中浮動車的密度。
在分布式實時地圖匹配算法設計過程中,本文基于上述方法進行地圖空間劃分,設計了一個基于Spark Streaming的并行地圖匹配計算流程,如圖4所示。圖中的步驟雖然與串行的實時地圖匹配流程較為相似,但是其輸入數據方式不同,使得兩者之間的計算效率產生本質的差異。
該計算流程將實時的流式數據作為輸入數據,基于Spark Streaming框架,按固定時間間隔(為保證實時性,在這里設置間隔為5 s)將數據流劃分為多個Streaming batch data[19,20]。接下來的流程中將對每個Streaming batch data分三步處理:
a)分片數據預處理。首先計算出每個GPS點所屬網格的編號(GridID),然后篩選并標記可跳點車輛對應的GPS點所匹配的路鏈。
b)候選路鏈計算。首先以預處理計算得到的GridID為key進行分組操作;其次獲取對應grid中的路鏈;然后驗證跳點標記的GPS點是否到達路鏈終點,取消到達終點的GPS點的標記;最后計算無跳點標記的GPS點的候選路鏈與權重。
c)路徑推測。首先使用updateStateby-Key操作獲取上一時間分片內各車輛的匹配結果,然后對于每一車輛,計算前后兩點第一個候選路鏈之間的拓撲關系,連接為候選路徑;最后根據拓撲關系計算出每個候選路徑的權重值,并比較選擇出權重最大的候選路徑作為匹配結果;對于之后一條候選路徑的車輛,將該候選路徑作為該車輛的可跳點標記。
在該流程中,浮動車歷史定位信息的獲取效率優化是依靠Spark的RDD機制,當前時間段的Streaming batch data相應的計算結果將存儲至內存存儲單元RDD中,以便供下一時間段Streaming batch data計算流程中相應模塊通過updateStateByKey算子獲取。另外,Spark的流式數據處理框架中,DAG圖機制以及內存計算等技術充分利用CPU與內存資源,實現多臺機器內存共享管理,并將其抽象為一個整體進行讀取、寫入、計算等多種操作,其效率遠遠優于串行算法中多次對單車數據的查找、操作、寫入流程,實現了匹配算法在優化計算效率的同時保障計算魯棒性的目的,使得計算性能進一步提升。
3 實驗
3.1 實驗環境和數據集
為了更準確地測試本文算法的計算效率和準確性,采用11個虛擬機,每個虛機配置包括8核CPU、36 GB內存、500 GB存儲,本文的實驗環境不包括大數據平臺管理服務和數據接口前置服務器,僅為地圖匹配算法處理部分。本文的實驗數據為北京市2018年9~11月份采集的部分公交車、出租車運行過程中的軌跡數據,數據采集頻率為1 s,數據量1億條左右。通過數據預處理,去掉部分無效數據和軌跡點缺失較嚴重的數據,有效數據有8千萬條以上,數據容量40 GB,采集數據包含的關鍵信息如表1、2所示,地圖數據為2019年北京市四維地圖。為了更好地驗證上述基于Spark Streaming構造的分布式實時地圖匹配算法的計算效率,本文依托已有的數據進行效率測試,驗證不同數據規模下并行匹配效率與單機串行的計算效率差異。
為了更精準地分析本文算法的匹配效果,在本次實驗的數據集中,選取54輛采樣頻率為1 s且具有固定行駛路線的公交車一周的軌跡數據,以及采樣頻率為1 s的100輛出租車一周的行駛軌跡數據,用于對算法準確率進行分析、驗證。
3.2 匹配準確率分析
本文從兩個角度進行匹配算法準確度的分析:a)從算法匹配總體準確度角度,本文構造匹配算法與經典拓撲匹配算法、高級匹配算法中的隱馬爾可夫模型進行對比分析;b)按照道路等級分析本文算法在各道路結構下的適應性。
3.2.1 匹配精度計算方法
本文將測試城市道路匹配算法準確率,將使用匹配正確的車輛定位點數量與軌跡中總點數數量的比值作為匹配的準確率,用于評價地圖匹配算法的效果。本文構造的實時地圖匹配算法準確率(accuracy)將使用AN(accuracy by number)度量,這種度量方法被用在文獻[11]的實驗中。
其中:pi=(p1,p2,…,pn)為采集到的軌跡點;p*j=(p*1,p*2,…,p*n)為匹配正確的軌跡點。
3.2.2 匹配算法準確率對比分析
首先本文從總體地圖匹配效果方面對比并分析本文算法與經典拓撲算法、隱馬爾可夫模型的匹配準確度。由圖5可見,本文算法的準確度明顯優于經典拓撲匹配算法,整體匹配精度提高了10%以上,相對于隱馬爾可夫模型也有明顯的優勢。根據前文分析,隱馬爾可夫模型計算復雜度較高,不適合應用于實時度較高的處理。
同時,本文隨機抽樣24組車輛軌跡數據進行驗證,為了減少隨機因素對結果的影響,每組數據的連續軌跡均超過10 km。驗證數據包括3輛公交車和3輛出租車的軌跡數據,通過各算法的處理,為了減少單車影響,對每輛車進行準確率計算。如表3所示,各算法的準確率與圖5的準確度基本一致,再次驗證了本文算法可以較好地完成實時地圖匹配的處理。
針對表3中的car_3軌跡數據,通過本文算法處理,并借助MapInfo軟件進行展示,得到了匹配效果如圖6所示。在圖6中,綠色線代表成功匹配到的道路,而紅色虛線則表示車輛實際行駛道路,但算法未能正確匹配的部分(參見電子版)。除了在圖中圈出的路口由于軌跡點的偏移過大且數據過于稀疏而導致稍有偏差外,其他部分均能夠正確匹配,準確率與表3中所述一致,達到了95%以上。
3.2.3 匹配算法在各道路類型上的準確率分析
接下來,本文按照北京市幾類道路類型進行匹配,以進一步分析本文算法的匹配準確度,如圖7所示。
本文按照四維地圖道路等級提取北京市五環內主路、輔路、快速路各10條,每條長度在2 km以上,以及5座立交橋進行準確度分析。本文算法在各道路類型上的平均準確率均在93%以上,尤其是在快速路和主路上準確度達到了98%以上,在立交橋上的準確度達到95%,完全滿足智能交通應用的要求。
3.3 匹配算法效率分析
本文在Spark Streaming計算框架與單機串行計算效率對比實驗中,準備了11臺相同配置的設備,并把數據隨機分成11份,實驗結果如圖8所示。Spark cluster的運行效率遠遠高于相同數量的單機服務器,數據量越大,這種趨勢愈明顯。基于本文8 000萬條數據集的測試可以看出,3 min內Spark cluster可以處理完所有數據(相當于10萬數量級車輛實時產生的軌跡數據),并且隨著數據量的增加,Spark cluster處理效率更高,當數據增長至8 000萬條時,Spark cluster的處理能力是相同數量的單機服務器的4倍左右。
4 結束語
隨著智慧交通發展和車輛軌跡數據的爆發式增長,精準、實時、快速的地圖匹配處理成為道路運行監測、智慧公路建設的迫切需求。為解決傳統拓撲地圖匹配算法在實時性和計算效率方面的問題,依托Spark Streaming分布式計算框架,本文提出一種針對于海量GPS數據的實時并行地圖匹配算法,突破離線地圖匹配算法對歷史軌跡數據的依賴。其主要貢獻如下:首先,通過引入速度和方向權重因子,實現只依靠當前位置點和后續位置點的地圖匹配算法,為分布式實時地圖匹配處理提供算法支撐;其次,以浮動車軌跡數據流作為實時數據輸入,依托Spark Streaming分布式計算框架的RDD數據塊和DAG圖機制以及內存計算策略,充分利用服務器CPU與內存資源實現實時地圖處理;最后,本文通過實時軌跡數據進行了算法和計算框架的對比實驗,可為后續實時地圖匹配算法的改進、優化提供參考。同時,本文在測試范圍上存在一定的局限性,主要以北京營運車輛的軌跡數據進行測試,未能對其他城市進行對比分析,后續研究工作將在算法復用性上進行更為充分的測試和優化。
參考文獻:
[1]Manikandan R, Latha R, Ambethraj C. An analysis of map matching algorithm for recent intelligent transport system[J].Asian Journal of Applied Sciences, 2017,5(1):179-183.
[2]Fu Xiao, Zhang Jiaxu, Zhang Yue. An online map matching algorithm based on second-order hidden Markov model[J]. Journal of Advanced Transportation, 2021,2021:1-12.
[3]Hunter T, Abbeel P, Bayen A M. The path inference filter: model-based low-latency map matching of probe vehicle data[M]//Algorithmic Foundations of Robotics X. Berlin: Springer, 2013: 591-607.
[4]盛彩英,席唱白,錢天陸. 浮動車軌跡點地圖匹配及插值算法[J]. 測繪科學, 2019,44(8):106-112. (Sheng Caiying, Xi Changbai, Qian Tianlu, et al. Study of map-matching and interpolation algorithm of floating car data[J]. Science of Surveying and Mapping, 2019,44(8):106-112.)
[5]Karamete B K, Adhami L, Glaser E. An adaptive Markov chain algorithm applied over map-matching of vehicle trip GPS data[J]. Geo-spatial Information Science, 2021,24(3): 484-497.
[6]Luo Linbo, Hou Xiangting, Cai Wentong, et al. Incremental route inference from low-sampling GPS data: an opportunistic approach to online map matching[J]. Information Sciences, 2010,512: 1407-1423.
[7]Jin Zhixion, Kim J, Yeo H , et al. Transformer-based map matching model with limited ground-truth data using transfer-learning approach[EB/OL].(2021-10-07). https://doinory/10.1016/j.trc.2022.103668.
[8]Zhang Xiaoyao, Li Xuejing. Map-matching approach based on link factor and hidden Markov model[J]. Journal of Intelligent & Fuzzy Systems: Applications in Engineering and Technology, 2021,40(3): 5455-5471.
[9]Velaga N R, Quddus M A, Bristow A L. Developing an enhanced weight-based topological map-matching algorithm for intelligent transport systems[J]. Transportation Research, Part C: Emerging Technologies, 2009,17(6): 672-683.
[10]Hsueh Y L, Chen H C, Huang Weijie. A hidden Markov model-based map-matching approach for low-sampling-rate GPS trajectories[C]//Proc of the 7th IEEE International Symposium on Cloud and Service Computing. Piscataway, NJ: IEEE Press, 2017:178235-178245.
[11]Huang Jian, Qie Jinhui, Liu Chunwei, et al. Cloud computing-based map-matching for transportation data center[J]. Electronic Commerce Research & Applications, 2015, 14(6): 431-443.
[12]He Mujun, Zheng Linjiang, Cao Wei, et al. An enhanced weight-based real-time map matching algorithm for complex urban networks[J]. Physica A: Statistical Mechanics and Its Applications, 2019, 534: 122318.
[13]Pan Yuyan, Guo Jifu, Chen Yanyan, et al. Incorporating traffic flow model into a deep learning method for traffic state estimation: a hybrid stepwise modeling framework[J]. Journal of Advanced Transportation, 2022, 2022(1): article ID 5926663.
[14]Apache Spark. The Apache software foundation[DB/OL]. https://spark.apache.org/.
[15]Wang Suzhen, Jia Zhiting, Cao Ning. Research on optimization and application of Spark decision tree algorithm under cloud-edge collaboration[J]. International Journal of Intelligent Systems, 2022,37(11): 8833-8854.
[16]Muhammad A, Aleem M, Islam M A. TOP-Storm: a topology-based resource-aware scheduler for stream processing engine[J]. Cluster Computing, 2021,24: 417-431.
[17]Ghesmoune M, Lebbah M, Azzag H. Micro-batching growing neural gas for clustering data streams using spark streaming[J]. Procedia Computer Science, 2015,53(1): 158-166.
[18]Liu Guipeng, Zhu Xiaomin, Wang Ji, et al. SP-Partitioner: a novel partition method to handle intermediate data skew in spark streaming[J]. Future Generation Computer Systems, 2018,86: 1054-1063.
[19]Livaja I, Pripui K, Sovilj S, et al. A distributed geospatial publish/subscribe system on Apache Spark[J]. Future Generation Computer Systems, 2022,132: 282-298.
[20]Hu Fei, Yang Chaowei, Jiang Yongyao, et al. A hierarchical indexing strategy for optimizing Apache Spark with HDFS to efficiently query big geospatial raster data[J]. International Journal of Digital Earth, 2020,13(3): 410-428.