彭小男 李文金 蘇凱雄



摘要:利用當下流行的漸進式JavaScript框架Vue和Leaflet地圖組件,構建一套穩定、易用、用戶體驗好的多功能北斗定位可視化監控平臺。從前端軟件架構以及前后端交互機制出發,通過將北斗設備獲取的原始WGS84坐標轉換為國測局GCJ02坐標,實現了北斗終端的實時監控、歷史軌跡回放等功能;針對歷史軌跡回放中存在的位置點偏移與路徑折線的問題,引人路徑匹配和軌跡插值算法,提高了歷史軌跡回放的準確性與運動軌跡的平滑性。
關鍵詞:Vue;leaflet地圖;北斗定位;路徑匹配;軌跡插值
中圖分類號:TP399 文獻標識碼:A
文章編號:1009-3044(2020)13-0028-03
1背景
傳統的位置服務平臺功能單一,且依賴于服務器性能,通常未能給用戶帶來很好的可視化體驗。隨著技術的發展,前端工程化以及前后端分離的開發方式已漸成潮流。通過選擇一套合適的前端框架來進行前端工程的開發,可以有效提高系統性能和用戶體驗。Vue是目前平臺前端頁面開發的主流框架,采用自底向上增量開發的設計,可使得前端開發更便捷。為了使北斗設備更好地與具體行業應用結合,使北斗數據得到更為充分地利用,拓展出較為豐富的內容,本文設計和實現了基于Vue框架的北斗定位可視化監控平臺。
從工程應用對交互展現體驗的需求出發,采用Vue框架對前端系統進行設計與實現。為提高用戶交互體驗,將車輛的位置信息及行駛軌跡實時、動態、直觀地顯示在Leaflet地圖上。在軌跡回放設計中,通過引入路徑匹配算法和軌跡插值算法,提高了在地圖上還原車輛原始行駛路徑的準確性,以及軌跡顯示和動態回放的平滑性。
2系統總體設計
2.1系統軟件架構
圖1中,持久層用于存儲相關的前端資源以及后端返回有關位置信息的數據;傳輸層實現內部數據的傳遞分發;服務層提供平臺的核心業務功能,封裝有主要的業務邏輯;應用層包含應用到的視圖組件、驗證工具和插件等,封裝交互邏輯。分層式結構將數據管理和應用邏輯分層獨立管理,在該架構下開發北斗定位監控可視化平臺,使層次結構更加明確,后期維護更為便利,提高模塊復用性,降低代碼耦合性。
2.2前后端交互機制
前后端交互過程如圖2所示,以進入監控中心頁面為例。
系統前端頁面采用動態獲取路由的方式,在平臺中每個用戶綁定相應角色,角色授權相應的可執行操作。用戶根據用戶名與密碼登入系統,后端數據庫根據不同登人用戶的角色驗證后返回Token以及相應的路由,從而生成菜單。在監控中心中選擇需要獲取位置的終端,前端將終端號作為參數用iQueryAjax向后端發送異步請求,后臺服務根據請求的范圍在mysql數據庫中進行空間查詢,并把結果以JSON格式字符串的形式返回給前端進行解析,包括經度、維度、速度和方向等,然后將其位置數據在Leaflet地圖上展示。
3算法設計
在對監控對象的歷史位置點進行軌跡回放中,由于在中國國內使用谷歌地圖所獲取的經緯度經過了加偏處理,為了提高定位精度,需要將北斗獲取的WGS84坐標轉換為國測局GCJ02坐標。
3.1坐標轉換
3.2路徑匹配
當定位軌跡點出現偏差,會造成軌跡回放不能準確地還原車輛行進的路線,通過路徑匹配算法解決位置點偏移的問題。以偏離點為圓心,以R為半徑建立緩沖區。路徑匹配是指從緩沖區篩選出來的道路集中篩選出匹配的目標道路,并將偏離點投影到匹配的目標道路對應點上,原理如圖3所示。
具體的實現步驟為:
1)將緩沖區篩選出來的道路分別離散成一系列點集合,如點集合A和B。
3.3軌跡插值
軌跡插值算法在確保插值有效的前提下,盡可能地減少了定位次數,從而降低實際應用系統的成本㈣。
4監控可視化功能實現
4.1實時監控
圖5為終端監控界面,Leaflet增加了AJAX技術,實現在不需要刷新整個頁面的情況下更新頁面內容,在地圖上用戶可通過選擇地圖刷新時間來自動獲取設備的實時位置。在搜索區,用戶可以選擇組織和設備名稱來獲取終端設備,將返回的數據以樹狀圖的形式展現出來。當用戶勾選樹狀圖中的終端設備,在右側的Leaflet地圖中顯示出該設備對應經緯度的最新實時位置點。并且用戶點擊地圖上的marker時,觸發popup彈框功能,信息框顯示設備的終端編號、定位時間、數據來源、經緯度等基本信息。
4.2軌跡回放
本平臺將設計好的路徑匹配和插值算法封裝成代碼插件,用戶前端操作回放功能時,通過選擇時間段和終端設備,利用設計好算法的插件對軌跡點數進行增密處理,還原車輛的歷史行駛軌跡,并將從服務端獲取到的位置數據處理后在Leaflet地圖上進行動畫回放。實現效果圖如6所示。
5結束語
平臺以北斗衛星導航定位服務需求為背景,從平臺總體架構、前端框架以及平臺前后端交互機制出發,通過使用Vue框架和Leaflet地圖實現一個提供實時監控、軌跡回放等多功能的車輛位置服務平臺,能夠準確地對裝有北斗的車輛進行位置監控,具有較高的可靠性和穩定性,并且通過對平臺前端進行優化處理,給用戶帶來更好的可視化體驗。作為基于北斗系統的工程應用,在一定程度上促進了北斗在民用領域的進一步拓展與推廣。