◆談帥 羅尊驊
基于WebGIS北斗車輛監(jiān)控系統(tǒng)的關(guān)鍵技術(shù)研究與系統(tǒng)設計
◆談帥 羅尊驊
(江蘇省測繪研究所 江蘇 210013)
目前智慧城市時空大數(shù)據(jù)平臺對感知數(shù)據(jù)的監(jiān)測、分析與應用能力亟待提升,據(jù)此本文以北斗車輛監(jiān)控系統(tǒng)的設計與開發(fā)為落腳點,對實時數(shù)據(jù)應用系統(tǒng)中具有代表性的兩個關(guān)鍵技術(shù)問題“實時地理信息數(shù)據(jù)發(fā)布與接入”以及“監(jiān)控規(guī)則與地理圍欄的動態(tài)創(chuàng)建”進行了研究,并借助ArcGIS GeoEvent Server的基礎能力進一步擴展,提出兩個關(guān)鍵技術(shù)的解決方案。最終,設計并實現(xiàn)了基于WebGIS的北斗車輛監(jiān)控系統(tǒng)。該系統(tǒng)具有車輛實時狀態(tài)統(tǒng)計圖展示功能、實時信息空間可視化功能、車輛管理、車輛監(jiān)控管理等功能。它能夠持續(xù)監(jiān)控并記錄車輛行為,車輛違規(guī)時第一時間以短信、郵件方式通知相關(guān)人員,有效提高了車輛管理能力。本文從技術(shù)研究以及系統(tǒng)設計與實現(xiàn)兩個方面進行了討論,為實時感知數(shù)據(jù)應用的開發(fā)提供了技術(shù)參考。
實時數(shù)據(jù);大數(shù)據(jù);車輛監(jiān)控;WebGIS;ArcGIS GeoEvent Server
《智慧城市時空大數(shù)據(jù)平臺建設技術(shù)大綱(2019版)》[1]在時空大數(shù)據(jù)方面將原有四類數(shù)據(jù)面向智能化需求和本地特色進行擴展,形成現(xiàn)有的五類數(shù)據(jù),即基礎時空數(shù)據(jù)、公共專題數(shù)據(jù)、物聯(lián)網(wǎng)實時感知數(shù)據(jù)、互聯(lián)網(wǎng)在線抓取數(shù)據(jù)和根據(jù)本地特色擴展數(shù)據(jù),明確提出了“要利用空、天、地一體化對地觀測傳感網(wǎng)實時獲取的基礎地理信息數(shù)據(jù)和依托專業(yè)傳感器感知的、可共享的行業(yè)專題實時數(shù)據(jù)”的要求。因此,智慧城市時空大數(shù)據(jù)平臺對感知數(shù)據(jù)監(jiān)測、分析、應用能力亟待提升。
基于實時定位數(shù)據(jù)的車輛監(jiān)控系統(tǒng)是智慧城市時空大數(shù)據(jù)平臺的重要組成部分,具有車輛違章監(jiān)控、輔助作業(yè)車輛調(diào)度等能力,不管是在日常車輛管理或搶險救災場景下都能發(fā)揮巨大作用[2-3]。2020年6月23日,北斗三號組網(wǎng)部署的最后一顆衛(wèi)星的發(fā)射成功標志著北斗全球系統(tǒng)定位系統(tǒng)全球星座部署圓滿完成。北斗系統(tǒng)具有自主性、國產(chǎn)化的特點,能提供高質(zhì)量、高精度的實時空間定位數(shù)據(jù),是“空、天、地”感知網(wǎng)的重要組成部分,基于北斗數(shù)據(jù)的車輛監(jiān)控系統(tǒng)具有巨大的社會、經(jīng)濟效益[4]。
因此,本文以北斗車輛監(jiān)控系統(tǒng)為落腳點,對實時數(shù)據(jù)應用的關(guān)鍵技術(shù)進行研究,設計并實現(xiàn)了一個基于WebGIS的實時車輛監(jiān)控系統(tǒng),旨在為智慧城市時空基礎設施的全面應用積累經(jīng)驗,為全省新型基礎測繪、政府部門相關(guān)時空大數(shù)據(jù)及地理信息應用提供技術(shù)參考。
本文使用ArcGIS GeoEvent Server(簡稱GE),在其實時數(shù)據(jù)處理能力的基礎上進行擴展與開發(fā)。開發(fā)主要面臨兩個問題:(1)紛繁復雜的數(shù)據(jù)源類型如何接入的問題。(2)系統(tǒng)運行中,監(jiān)控規(guī)則與地理圍欄如何動態(tài)創(chuàng)建的問題。
針對上述問題,本文提出了相關(guān)解決方案,為基于WebGIS的北斗車輛監(jiān)控系統(tǒng)設計與實現(xiàn)打通關(guān)鍵技術(shù)環(huán)節(jié)。
GeoEvent Server(簡稱:GE)是ESRI地理空間云中的組成部分,提供實時流數(shù)據(jù)的態(tài)勢感知能力,為在地圖上訪問、分析、顯示分析實時數(shù)據(jù)以及物聯(lián)網(wǎng)數(shù)據(jù)提供支持,同時能實時監(jiān)測、及時響應,第一時間發(fā)出警報[5]。
GE的流數(shù)據(jù)處理能力以服務的形式提供,每個服務都包含從數(shù)據(jù)流輸入、過濾、處理到輸出的完整事件流,每個流程分別對應著GE中的輸入連接器(Input Connector)、過濾器(Filter)、處理器(Processor)、輸出連接器(Output Connector)這四個組件。輸入連接器用于接收和解釋來自數(shù)據(jù)源的事件數(shù)據(jù),它是事件流的起點,每個GE服務都需要包括一個以上的輸入連接器;過濾器用于根據(jù)空間和屬性從數(shù)據(jù)流中移除不滿足條件的數(shù)據(jù);處理器使用對流數(shù)據(jù)進行特定的操作,包括字段處理、空間計算、投影等GIS處理能力;流程最后通過輸出連接器將完成處理的事件數(shù)據(jù)以預期的格式以及方式實時傳送給使用者,包括地理信息流服務、郵件、短信等方式。
雖然GE提供了實時數(shù)據(jù)處理的基礎能力,但尚不能結(jié)合具體業(yè)務需求落地形成一套完整的技術(shù)方案,其中關(guān)鍵技術(shù)問題包括:“實時地理信息數(shù)據(jù)發(fā)布與接入”和“監(jiān)控規(guī)則與地理圍欄的動態(tài)創(chuàng)建”。
實時地理信息數(shù)據(jù)源的數(shù)據(jù)體量大、產(chǎn)生時間密集且形式種類繁多,具有海量性、多樣性、高速性、持續(xù)性的特點。實時地理信息數(shù)據(jù)源的接入包括輪詢與訂閱兩種方式,輪詢是按照一定的時間頻率主動的方式向?qū)崟r數(shù)據(jù)的提供方進行請求,數(shù)據(jù)源被動推送數(shù)據(jù)。而訂閱的方式是由數(shù)據(jù)源主動推送數(shù)據(jù),客戶端不需要進行主動請求。
采用輪詢的方式需要客戶端使用定時器與服務端進行異步通信,對服務端開發(fā)要求較低,但同時帶來了大量的問題:(1)密集的數(shù)據(jù)訪問會對服務器以及數(shù)據(jù)庫造成巨大的壓力以及資源消耗。(2)數(shù)據(jù)獲取時間滯后,時效性不強。(3)由于輪詢時間間隔的原因,不同的用戶可能會看到不同的數(shù)據(jù),數(shù)據(jù)一致性弱??傮w而言,輪詢的方式資源消耗大、實時性較低、用戶體驗較差不能算是實時地理數(shù)據(jù)發(fā)布的最佳方式。
訂閱模式基于數(shù)據(jù)主動推送與及時分發(fā)技術(shù),WebSocket屬于重要的技術(shù)實現(xiàn)之一。WebSocket是一種在單個TCP連接上進行雙工通訊的應用層協(xié)議,允許服務端主動發(fā)送信息給客戶端,長連接機制能有效降低資源消耗、保證數(shù)據(jù)高時效性以及客戶端數(shù)據(jù)的一致性。在數(shù)據(jù)量大、并發(fā)性高的情況下,消息中間件技術(shù)可以保障數(shù)據(jù)的完整性、實時性以及大吞吐量。Kafka 是以時間復雜度 O(1)的方式提供消息持久化服務,支持離線數(shù)據(jù)處理和實時數(shù)據(jù)處理,在海量數(shù)據(jù)處理領(lǐng)域被廣泛使用。
綜上,本研究決定以WebSocket通信方案以及Kafka消息中間件兩種方式作為北斗車輛數(shù)據(jù)的數(shù)據(jù)發(fā)布方案,進行實時數(shù)據(jù)發(fā)布服務的開發(fā)。在GE的實時數(shù)據(jù)接入方面,利用Java對GE進行擴展開發(fā),實現(xiàn)WebSocket和Kafka兩種輸入連接器。
監(jiān)控功能中的規(guī)則設置尤為關(guān)鍵。北斗車輛監(jiān)控系統(tǒng)中不但需要用戶可以自定義屬性規(guī)則以及在線創(chuàng)建、編輯地理圍欄,而且要求針對不同的車輛設置不同的規(guī)則,但是原生的GE并不能滿足上述功能的需求。因此本文在GE的基礎上提出并實現(xiàn)了動態(tài)規(guī)則創(chuàng)建以及不同車輛與不同規(guī)則匹配的解決方案。
屬性規(guī)則的創(chuàng)建利用了GE中的過濾器組件(filter),對符合條件的數(shù)據(jù)進行篩選進入下一步的數(shù)據(jù)輸出反饋。每個監(jiān)控創(chuàng)建時由系統(tǒng)默認生成的uuid作為組件的名稱,由系統(tǒng)用戶所填寫的監(jiān)控名稱作為標簽(label),條件(conditions)作為條件參數(shù)。結(jié)合上述三個參數(shù)調(diào)用GE服務更新接口即可動態(tài)創(chuàng)建屬性規(guī)則(如圖1)。
圖1 屬性監(jiān)控動態(tài)創(chuàng)建流程
空間監(jiān)控即地理圍欄,包括4種空間事件:INSIDE、OUTSIDE、ENTER、EXIT,事件觸發(fā)后即可根據(jù)規(guī)則做出反饋(如圖2)。地理圍欄的創(chuàng)建利用的是GE中的處理器(Processor)組件,本文利用地理標記器(GeoTagger)組件自動更新地理圍欄的方式進行處理,通過設置圍欄的自動同步規(guī)則,使圍欄自動與所設置的要素服務(FeatureServer)同步,將圍欄的動態(tài)“增、刪、改、查” 轉(zhuǎn)變?yōu)閷σ胤請D形的編輯,只要借助ArcGIS API for JavaScript在線編輯接口,即可在瀏覽器端對要素服務進行增刪改查的操作,從而實現(xiàn)了空間監(jiān)控的交互式動態(tài)創(chuàng)建。
圖2 地理圍欄監(jiān)控觸發(fā)機制
而車輛與規(guī)則的多對多關(guān)系本文則采用正則法則進行匹配,正則條件為MATCHES.*(ruleid1,ruleid2).*,屬性監(jiān)控的條件會根據(jù)車輛系統(tǒng)中設置的各項屬性動態(tài)生成,將其動態(tài)拼接在過濾器的條件框中,并默認采用AND方式連接各個條件,該方法決定了在車輛系統(tǒng)創(chuàng)建的單個監(jiān)控規(guī)則中,所有的條件都是“與”的關(guān)系。如果需要條件關(guān)系為“或”需要通過創(chuàng)建多個規(guī)則來實現(xiàn)。
基于北斗的車輛監(jiān)控系統(tǒng)由信號傳輸模塊、監(jiān)控中心和應用終端構(gòu)成,系統(tǒng)架構(gòu)如圖3所示,功能結(jié)構(gòu)圖如圖4所示。
圖3 北斗車輛監(jiān)控系統(tǒng)架構(gòu)
(1)信號傳輸模塊:車輛通過內(nèi)置的北斗衛(wèi)星定位車載終端獲取北斗定位實時數(shù)據(jù),通過移動通信網(wǎng)絡與監(jiān)控中心進行信號傳輸,為車輛監(jiān)控提供實時數(shù)據(jù)。
(2)監(jiān)控中心:由通信中間件、數(shù)據(jù)庫服務器、GE Server、地圖服務器、Web服務器、短信/郵件服務器組合而成。其中通信中間件包括WebSocket服務端、Kafka服務端,負責轉(zhuǎn)發(fā)北斗車輛實時信息。數(shù)據(jù)庫服務器包括:車輛管理業(yè)務數(shù)據(jù)庫,用于存儲車輛相關(guān)靜態(tài)信息、監(jiān)控規(guī)則;地理信息數(shù)據(jù)庫,用于持久化北斗實時位置數(shù)據(jù)。GE Server負責對實時數(shù)據(jù)進行監(jiān)控,根據(jù)監(jiān)控規(guī)則進行反饋,反饋結(jié)果通過地圖服務器、短信/郵件服務器分別實現(xiàn)了實時數(shù)據(jù)“上圖”,并且可以通過手機、郵件兩種形式第一時間對管理員進行通知。綜合上述能力,最終,通過Web服務形式綜合為前端單頁應用。
(3)應用終端:用戶可以在瀏覽器端訪問應用,進行車輛監(jiān)控與管理,滿足車輛在線實時監(jiān)控的需求。
圖4 北斗車輛監(jiān)控系統(tǒng)功能結(jié)構(gòu)圖
數(shù)據(jù)方面,系統(tǒng)采用真實北斗監(jiān)控歷史數(shù)據(jù),數(shù)據(jù)來源于江蘇北斗衛(wèi)星應用產(chǎn)業(yè)研究院有限公司提供的2016年部分北斗車輛監(jiān)控數(shù)據(jù)和視頻數(shù)據(jù),其中車輛監(jiān)控數(shù)據(jù)記錄19993003條,約300G,利用該歷史數(shù)據(jù),采用推送的方式模擬實時北斗數(shù)據(jù)的數(shù)據(jù)源。
系統(tǒng)實現(xiàn)方面,本文針對GE Server基于Java開發(fā)了WebSocket和Kafka兩種輸入連接器;基于Java進行了通信中間件WebSocket服務器以及Kafka Producer 服務器的開發(fā);地圖服務器采用了ArcGIS Server;Web服務器的開發(fā)基于SpringBoot;前端Spa應用開發(fā)基于React及Arcgis API for JavaScript。最終,實現(xiàn)了B/S架構(gòu)的北斗車輛監(jiān)控系統(tǒng)的車輛實時狀態(tài)統(tǒng)計圖展示功能、實時信息空間可視化功能、車輛管理、車輛監(jiān)控管理等功能。
車輛實時展示功能位于系統(tǒng)首頁,如圖5,為用戶提供車輛監(jiān)控狀態(tài)總覽,并分別按車輛當前所在省份統(tǒng)計車輛數(shù)量、按不同速度區(qū)間統(tǒng)計車輛數(shù)量、按車輛類型統(tǒng)計車輛數(shù)量。
圖5 車輛實時狀態(tài)統(tǒng)計頁面
地圖瀏覽模塊即“地圖展示”除展示車輛實時位置外還包含地圖基本操作、圖層管理、興趣點查詢?nèi)齻€部分,旨在對實時車輛信息進行基于地圖的空間可視化。
用戶可以在地圖界面瀏覽車輛實時分布狀態(tài)以及移動過程,如圖6,系統(tǒng)也支持放大、縮小、底圖切換、空間量測等在線地圖的基礎功能。
圖6 車輛實時位置分布狀態(tài)頁面
同時,用戶可以通過車輛查詢周圍興趣點,或者以某個興趣點為中心查詢周圍5km范圍內(nèi)的車輛,為車輛在線調(diào)度提供支持,如圖7所示。
圖7 車輛位置與興趣點互查頁面
車輛管理模塊包含車輛注冊、車輛查詢、歷史軌跡查詢?nèi)笾饕δ堋?/p>
系統(tǒng)中接受管理與監(jiān)控的車輛需要先進行注冊,需登記包括車輛單位、車牌等屬性,通過注冊后的車輛根據(jù)權(quán)限即可加入系統(tǒng)的監(jiān)控序列中,只有完成注冊的車輛才會列入系統(tǒng)查詢、監(jiān)控范圍。
車輛查詢是指用戶通過輸入車輛管理單位、車牌等條件等進行條件查詢,查詢結(jié)果在地圖上高亮顯示。并且,用戶還可以查看目標車輛的歷史運行軌跡,并可以將歷史軌跡以URL形式進行分享,如圖8所示。
圖8 車輛歷史運行軌跡與分享頁面
圖9 車輛地理圍欄創(chuàng)建界面
該功能模塊主要功能是對車輛的屬性監(jiān)控規(guī)則以及空間監(jiān)控規(guī)則的配置。首先在地圖展示模塊中以勾畫的方式創(chuàng)建地理圍欄(如圖9),并在車輛監(jiān)控管理模塊中填寫屬性規(guī)則并選擇創(chuàng)建好的圍欄(如圖10),最后選擇警報信息接收人,并選擇郵件或短信報警通知方式(如圖11),完成監(jiān)控規(guī)則配置后系統(tǒng)將持續(xù)不斷的監(jiān)控車輛行為。若有監(jiān)控車輛出現(xiàn)符合違反監(jiān)控規(guī)則的情況,系統(tǒng)將立刻以短信或者郵件的方式通知責任人,幫助他第一時間做出響應。
圖10 監(jiān)控規(guī)則創(chuàng)建頁面
圖11 接收人與報警信息推送方式管理界面
本文以提升對實時感知數(shù)據(jù)監(jiān)測、分析、應用能力的探索為初衷,以開展北斗實時車輛監(jiān)控系統(tǒng)的研究與開發(fā)為落腳點,對比較具有代表意義的兩個關(guān)鍵技術(shù)“實時地理信息數(shù)據(jù)發(fā)布與接入”、“監(jiān)控規(guī)則與地理圍欄的動態(tài)創(chuàng)建”進行了研究并提出了解決方案,并在此基礎上實現(xiàn)了一個具有車輛實時狀態(tài)統(tǒng)計圖展示功能、實時信息空間可視化功能、車輛管理、車輛監(jiān)控管理等功能有B/S架構(gòu)的北斗車輛實時監(jiān)測系統(tǒng)。在后續(xù)的研究中,需要從實時大數(shù)據(jù)動態(tài)可視化角度進一步提升系統(tǒng)可視化水平,從系統(tǒng)優(yōu)化角度進一步提高系統(tǒng)性能,繼續(xù)為智慧城市時空基礎設施的全面應用積累經(jīng)驗、提供技術(shù)參考。
[1]國家測繪地理信息局. 智慧城市時空大數(shù)據(jù)與云平臺建設技術(shù)大綱(2019版)[S].
[2]鮑駿. 基于北斗定位的車輛監(jiān)控系統(tǒng)的研究[D]. 南京理工大學,2014.
[3]盧麗敏. 基于北斗定位技術(shù)的車載監(jiān)控系統(tǒng)設計與研究[D]. 2014.
[4]張向南,趙慶展,何啟峰,等. 基于北斗的物流車輛監(jiān)控系統(tǒng)[J]. 物流技術(shù),2015,34(008):251-254.
[5]Amiruddin,Maneesa S . Real-time Web GIS to monitor marine water quality using wave glider[J]. Iop Conference, 2016,37:012074.