◆談帥 羅尊驊
基于WebGIS北斗車輛監(jiān)控系統(tǒng)的關(guān)鍵技術(shù)研究與系統(tǒng)設(shè)計(jì)
◆談帥 羅尊驊
(江蘇省測(cè)繪研究所 江蘇 210013)
目前智慧城市時(shí)空大數(shù)據(jù)平臺(tái)對(duì)感知數(shù)據(jù)的監(jiān)測(cè)、分析與應(yīng)用能力亟待提升,據(jù)此本文以北斗車輛監(jiān)控系統(tǒng)的設(shè)計(jì)與開發(fā)為落腳點(diǎn),對(duì)實(shí)時(shí)數(shù)據(jù)應(yīng)用系統(tǒng)中具有代表性的兩個(gè)關(guān)鍵技術(shù)問題“實(shí)時(shí)地理信息數(shù)據(jù)發(fā)布與接入”以及“監(jiān)控規(guī)則與地理圍欄的動(dòng)態(tài)創(chuàng)建”進(jìn)行了研究,并借助ArcGIS GeoEvent Server的基礎(chǔ)能力進(jìn)一步擴(kuò)展,提出兩個(gè)關(guān)鍵技術(shù)的解決方案。最終,設(shè)計(jì)并實(shí)現(xiàn)了基于WebGIS的北斗車輛監(jiān)控系統(tǒng)。該系統(tǒng)具有車輛實(shí)時(shí)狀態(tài)統(tǒng)計(jì)圖展示功能、實(shí)時(shí)信息空間可視化功能、車輛管理、車輛監(jiān)控管理等功能。它能夠持續(xù)監(jiān)控并記錄車輛行為,車輛違規(guī)時(shí)第一時(shí)間以短信、郵件方式通知相關(guān)人員,有效提高了車輛管理能力。本文從技術(shù)研究以及系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)兩個(gè)方面進(jìn)行了討論,為實(shí)時(shí)感知數(shù)據(jù)應(yīng)用的開發(fā)提供了技術(shù)參考。
實(shí)時(shí)數(shù)據(jù);大數(shù)據(jù);車輛監(jiān)控;WebGIS;ArcGIS GeoEvent Server
《智慧城市時(shí)空大數(shù)據(jù)平臺(tái)建設(shè)技術(shù)大綱(2019版)》[1]在時(shí)空大數(shù)據(jù)方面將原有四類數(shù)據(jù)面向智能化需求和本地特色進(jìn)行擴(kuò)展,形成現(xiàn)有的五類數(shù)據(jù),即基礎(chǔ)時(shí)空數(shù)據(jù)、公共專題數(shù)據(jù)、物聯(lián)網(wǎng)實(shí)時(shí)感知數(shù)據(jù)、互聯(lián)網(wǎng)在線抓取數(shù)據(jù)和根據(jù)本地特色擴(kuò)展數(shù)據(jù),明確提出了“要利用空、天、地一體化對(duì)地觀測(cè)傳感網(wǎng)實(shí)時(shí)獲取的基礎(chǔ)地理信息數(shù)據(jù)和依托專業(yè)傳感器感知的、可共享的行業(yè)專題實(shí)時(shí)數(shù)據(jù)”的要求。因此,智慧城市時(shí)空大數(shù)據(jù)平臺(tái)對(duì)感知數(shù)據(jù)監(jiān)測(cè)、分析、應(yīng)用能力亟待提升。
基于實(shí)時(shí)定位數(shù)據(jù)的車輛監(jiān)控系統(tǒng)是智慧城市時(shí)空大數(shù)據(jù)平臺(tái)的重要組成部分,具有車輛違章監(jiān)控、輔助作業(yè)車輛調(diào)度等能力,不管是在日常車輛管理或搶險(xiǎn)救災(zāi)場(chǎng)景下都能發(fā)揮巨大作用[2-3]。2020年6月23日,北斗三號(hào)組網(wǎng)部署的最后一顆衛(wèi)星的發(fā)射成功標(biāo)志著北斗全球系統(tǒng)定位系統(tǒng)全球星座部署圓滿完成。北斗系統(tǒng)具有自主性、國(guó)產(chǎn)化的特點(diǎn),能提供高質(zhì)量、高精度的實(shí)時(shí)空間定位數(shù)據(jù),是“空、天、地”感知網(wǎng)的重要組成部分,基于北斗數(shù)據(jù)的車輛監(jiān)控系統(tǒng)具有巨大的社會(huì)、經(jīng)濟(jì)效益[4]。
因此,本文以北斗車輛監(jiān)控系統(tǒng)為落腳點(diǎn),對(duì)實(shí)時(shí)數(shù)據(jù)應(yīng)用的關(guān)鍵技術(shù)進(jìn)行研究,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于WebGIS的實(shí)時(shí)車輛監(jiān)控系統(tǒng),旨在為智慧城市時(shí)空基礎(chǔ)設(shè)施的全面應(yīng)用積累經(jīng)驗(yàn),為全省新型基礎(chǔ)測(cè)繪、政府部門相關(guān)時(shí)空大數(shù)據(jù)及地理信息應(yīng)用提供技術(shù)參考。
本文使用ArcGIS GeoEvent Server(簡(jiǎn)稱GE),在其實(shí)時(shí)數(shù)據(jù)處理能力的基礎(chǔ)上進(jìn)行擴(kuò)展與開發(fā)。開發(fā)主要面臨兩個(gè)問題:(1)紛繁復(fù)雜的數(shù)據(jù)源類型如何接入的問題。(2)系統(tǒng)運(yùn)行中,監(jiān)控規(guī)則與地理圍欄如何動(dòng)態(tài)創(chuàng)建的問題。
針對(duì)上述問題,本文提出了相關(guān)解決方案,為基于WebGIS的北斗車輛監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)打通關(guān)鍵技術(shù)環(huán)節(jié)。
GeoEvent Server(簡(jiǎn)稱:GE)是ESRI地理空間云中的組成部分,提供實(shí)時(shí)流數(shù)據(jù)的態(tài)勢(shì)感知能力,為在地圖上訪問、分析、顯示分析實(shí)時(shí)數(shù)據(jù)以及物聯(lián)網(wǎng)數(shù)據(jù)提供支持,同時(shí)能實(shí)時(shí)監(jiān)測(cè)、及時(shí)響應(yīng),第一時(shí)間發(fā)出警報(bào)[5]。
GE的流數(shù)據(jù)處理能力以服務(wù)的形式提供,每個(gè)服務(wù)都包含從數(shù)據(jù)流輸入、過濾、處理到輸出的完整事件流,每個(gè)流程分別對(duì)應(yīng)著GE中的輸入連接器(Input Connector)、過濾器(Filter)、處理器(Processor)、輸出連接器(Output Connector)這四個(gè)組件。輸入連接器用于接收和解釋來自數(shù)據(jù)源的事件數(shù)據(jù),它是事件流的起點(diǎn),每個(gè)GE服務(wù)都需要包括一個(gè)以上的輸入連接器;過濾器用于根據(jù)空間和屬性從數(shù)據(jù)流中移除不滿足條件的數(shù)據(jù);處理器使用對(duì)流數(shù)據(jù)進(jìn)行特定的操作,包括字段處理、空間計(jì)算、投影等GIS處理能力;流程最后通過輸出連接器將完成處理的事件數(shù)據(jù)以預(yù)期的格式以及方式實(shí)時(shí)傳送給使用者,包括地理信息流服務(wù)、郵件、短信等方式。
雖然GE提供了實(shí)時(shí)數(shù)據(jù)處理的基礎(chǔ)能力,但尚不能結(jié)合具體業(yè)務(wù)需求落地形成一套完整的技術(shù)方案,其中關(guān)鍵技術(shù)問題包括:“實(shí)時(shí)地理信息數(shù)據(jù)發(fā)布與接入”和“監(jiān)控規(guī)則與地理圍欄的動(dòng)態(tài)創(chuàng)建”。
實(shí)時(shí)地理信息數(shù)據(jù)源的數(shù)據(jù)體量大、產(chǎn)生時(shí)間密集且形式種類繁多,具有海量性、多樣性、高速性、持續(xù)性的特點(diǎn)。實(shí)時(shí)地理信息數(shù)據(jù)源的接入包括輪詢與訂閱兩種方式,輪詢是按照一定的時(shí)間頻率主動(dòng)的方式向?qū)崟r(shí)數(shù)據(jù)的提供方進(jìn)行請(qǐng)求,數(shù)據(jù)源被動(dòng)推送數(shù)據(jù)。而訂閱的方式是由數(shù)據(jù)源主動(dòng)推送數(shù)據(jù),客戶端不需要進(jìn)行主動(dòng)請(qǐng)求。
采用輪詢的方式需要客戶端使用定時(shí)器與服務(wù)端進(jìn)行異步通信,對(duì)服務(wù)端開發(fā)要求較低,但同時(shí)帶來了大量的問題:(1)密集的數(shù)據(jù)訪問會(huì)對(duì)服務(wù)器以及數(shù)據(jù)庫造成巨大的壓力以及資源消耗。(2)數(shù)據(jù)獲取時(shí)間滯后,時(shí)效性不強(qiáng)。(3)由于輪詢時(shí)間間隔的原因,不同的用戶可能會(huì)看到不同的數(shù)據(jù),數(shù)據(jù)一致性弱。總體而言,輪詢的方式資源消耗大、實(shí)時(shí)性較低、用戶體驗(yàn)較差不能算是實(shí)時(shí)地理數(shù)據(jù)發(fā)布的最佳方式。
訂閱模式基于數(shù)據(jù)主動(dòng)推送與及時(shí)分發(fā)技術(shù),WebSocket屬于重要的技術(shù)實(shí)現(xiàn)之一。WebSocket是一種在單個(gè)TCP連接上進(jìn)行雙工通訊的應(yīng)用層協(xié)議,允許服務(wù)端主動(dòng)發(fā)送信息給客戶端,長(zhǎng)連接機(jī)制能有效降低資源消耗、保證數(shù)據(jù)高時(shí)效性以及客戶端數(shù)據(jù)的一致性。在數(shù)據(jù)量大、并發(fā)性高的情況下,消息中間件技術(shù)可以保障數(shù)據(jù)的完整性、實(shí)時(shí)性以及大吞吐量。Kafka 是以時(shí)間復(fù)雜度 O(1)的方式提供消息持久化服務(wù),支持離線數(shù)據(jù)處理和實(shí)時(shí)數(shù)據(jù)處理,在海量數(shù)據(jù)處理領(lǐng)域被廣泛使用。
綜上,本研究決定以WebSocket通信方案以及Kafka消息中間件兩種方式作為北斗車輛數(shù)據(jù)的數(shù)據(jù)發(fā)布方案,進(jìn)行實(shí)時(shí)數(shù)據(jù)發(fā)布服務(wù)的開發(fā)。在GE的實(shí)時(shí)數(shù)據(jù)接入方面,利用Java對(duì)GE進(jìn)行擴(kuò)展開發(fā),實(shí)現(xiàn)WebSocket和Kafka兩種輸入連接器。
監(jiān)控功能中的規(guī)則設(shè)置尤為關(guān)鍵。北斗車輛監(jiān)控系統(tǒng)中不但需要用戶可以自定義屬性規(guī)則以及在線創(chuàng)建、編輯地理圍欄,而且要求針對(duì)不同的車輛設(shè)置不同的規(guī)則,但是原生的GE并不能滿足上述功能的需求。因此本文在GE的基礎(chǔ)上提出并實(shí)現(xiàn)了動(dòng)態(tài)規(guī)則創(chuàng)建以及不同車輛與不同規(guī)則匹配的解決方案。
屬性規(guī)則的創(chuàng)建利用了GE中的過濾器組件(filter),對(duì)符合條件的數(shù)據(jù)進(jìn)行篩選進(jìn)入下一步的數(shù)據(jù)輸出反饋。每個(gè)監(jiān)控創(chuàng)建時(shí)由系統(tǒng)默認(rèn)生成的uuid作為組件的名稱,由系統(tǒng)用戶所填寫的監(jiān)控名稱作為標(biāo)簽(label),條件(conditions)作為條件參數(shù)。結(jié)合上述三個(gè)參數(shù)調(diào)用GE服務(wù)更新接口即可動(dòng)態(tài)創(chuàng)建屬性規(guī)則(如圖1)。

圖1 屬性監(jiān)控動(dòng)態(tài)創(chuàng)建流程
空間監(jiān)控即地理圍欄,包括4種空間事件:INSIDE、OUTSIDE、ENTER、EXIT,事件觸發(fā)后即可根據(jù)規(guī)則做出反饋(如圖2)。地理圍欄的創(chuàng)建利用的是GE中的處理器(Processor)組件,本文利用地理標(biāo)記器(GeoTagger)組件自動(dòng)更新地理圍欄的方式進(jìn)行處理,通過設(shè)置圍欄的自動(dòng)同步規(guī)則,使圍欄自動(dòng)與所設(shè)置的要素服務(wù)(FeatureServer)同步,將圍欄的動(dòng)態(tài)“增、刪、改、查” 轉(zhuǎn)變?yōu)閷?duì)要素服務(wù)圖形的編輯,只要借助ArcGIS API for JavaScript在線編輯接口,即可在瀏覽器端對(duì)要素服務(wù)進(jìn)行增刪改查的操作,從而實(shí)現(xiàn)了空間監(jiān)控的交互式動(dòng)態(tài)創(chuàng)建。

圖2 地理圍欄監(jiān)控觸發(fā)機(jī)制
而車輛與規(guī)則的多對(duì)多關(guān)系本文則采用正則法則進(jìn)行匹配,正則條件為MATCHES.*(ruleid1,ruleid2).*,屬性監(jiān)控的條件會(huì)根據(jù)車輛系統(tǒng)中設(shè)置的各項(xiàng)屬性動(dòng)態(tài)生成,將其動(dòng)態(tài)拼接在過濾器的條件框中,并默認(rèn)采用AND方式連接各個(gè)條件,該方法決定了在車輛系統(tǒng)創(chuàng)建的單個(gè)監(jiān)控規(guī)則中,所有的條件都是“與”的關(guān)系。如果需要條件關(guān)系為“或”需要通過創(chuàng)建多個(gè)規(guī)則來實(shí)現(xiàn)。
基于北斗的車輛監(jiān)控系統(tǒng)由信號(hào)傳輸模塊、監(jiān)控中心和應(yīng)用終端構(gòu)成,系統(tǒng)架構(gòu)如圖3所示,功能結(jié)構(gòu)圖如圖4所示。

圖3 北斗車輛監(jiān)控系統(tǒng)架構(gòu)
(1)信號(hào)傳輸模塊:車輛通過內(nèi)置的北斗衛(wèi)星定位車載終端獲取北斗定位實(shí)時(shí)數(shù)據(jù),通過移動(dòng)通信網(wǎng)絡(luò)與監(jiān)控中心進(jìn)行信號(hào)傳輸,為車輛監(jiān)控提供實(shí)時(shí)數(shù)據(jù)。
(2)監(jiān)控中心:由通信中間件、數(shù)據(jù)庫服務(wù)器、GE Server、地圖服務(wù)器、Web服務(wù)器、短信/郵件服務(wù)器組合而成。其中通信中間件包括WebSocket服務(wù)端、Kafka服務(wù)端,負(fù)責(zé)轉(zhuǎn)發(fā)北斗車輛實(shí)時(shí)信息。數(shù)據(jù)庫服務(wù)器包括:車輛管理業(yè)務(wù)數(shù)據(jù)庫,用于存儲(chǔ)車輛相關(guān)靜態(tài)信息、監(jiān)控規(guī)則;地理信息數(shù)據(jù)庫,用于持久化北斗實(shí)時(shí)位置數(shù)據(jù)。GE Server負(fù)責(zé)對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行監(jiān)控,根據(jù)監(jiān)控規(guī)則進(jìn)行反饋,反饋結(jié)果通過地圖服務(wù)器、短信/郵件服務(wù)器分別實(shí)現(xiàn)了實(shí)時(shí)數(shù)據(jù)“上圖”,并且可以通過手機(jī)、郵件兩種形式第一時(shí)間對(duì)管理員進(jìn)行通知。綜合上述能力,最終,通過Web服務(wù)形式綜合為前端單頁應(yīng)用。
(3)應(yīng)用終端:用戶可以在瀏覽器端訪問應(yīng)用,進(jìn)行車輛監(jiān)控與管理,滿足車輛在線實(shí)時(shí)監(jiān)控的需求。

圖4 北斗車輛監(jiān)控系統(tǒng)功能結(jié)構(gòu)圖
數(shù)據(jù)方面,系統(tǒng)采用真實(shí)北斗監(jiān)控歷史數(shù)據(jù),數(shù)據(jù)來源于江蘇北斗衛(wèi)星應(yīng)用產(chǎn)業(yè)研究院有限公司提供的2016年部分北斗車輛監(jiān)控?cái)?shù)據(jù)和視頻數(shù)據(jù),其中車輛監(jiān)控?cái)?shù)據(jù)記錄19993003條,約300G,利用該歷史數(shù)據(jù),采用推送的方式模擬實(shí)時(shí)北斗數(shù)據(jù)的數(shù)據(jù)源。
系統(tǒng)實(shí)現(xiàn)方面,本文針對(duì)GE Server基于Java開發(fā)了WebSocket和Kafka兩種輸入連接器;基于Java進(jìn)行了通信中間件WebSocket服務(wù)器以及Kafka Producer 服務(wù)器的開發(fā);地圖服務(wù)器采用了ArcGIS Server;Web服務(wù)器的開發(fā)基于SpringBoot;前端Spa應(yīng)用開發(fā)基于React及Arcgis API for JavaScript。最終,實(shí)現(xiàn)了B/S架構(gòu)的北斗車輛監(jiān)控系統(tǒng)的車輛實(shí)時(shí)狀態(tài)統(tǒng)計(jì)圖展示功能、實(shí)時(shí)信息空間可視化功能、車輛管理、車輛監(jiān)控管理等功能。
車輛實(shí)時(shí)展示功能位于系統(tǒng)首頁,如圖5,為用戶提供車輛監(jiān)控狀態(tài)總覽,并分別按車輛當(dāng)前所在省份統(tǒng)計(jì)車輛數(shù)量、按不同速度區(qū)間統(tǒng)計(jì)車輛數(shù)量、按車輛類型統(tǒng)計(jì)車輛數(shù)量。

圖5 車輛實(shí)時(shí)狀態(tài)統(tǒng)計(jì)頁面
地圖瀏覽模塊即“地圖展示”除展示車輛實(shí)時(shí)位置外還包含地圖基本操作、圖層管理、興趣點(diǎn)查詢?nèi)齻€(gè)部分,旨在對(duì)實(shí)時(shí)車輛信息進(jìn)行基于地圖的空間可視化。
用戶可以在地圖界面瀏覽車輛實(shí)時(shí)分布狀態(tài)以及移動(dòng)過程,如圖6,系統(tǒng)也支持放大、縮小、底圖切換、空間量測(cè)等在線地圖的基礎(chǔ)功能。

圖6 車輛實(shí)時(shí)位置分布狀態(tài)頁面
同時(shí),用戶可以通過車輛查詢周圍興趣點(diǎn),或者以某個(gè)興趣點(diǎn)為中心查詢周圍5km范圍內(nèi)的車輛,為車輛在線調(diào)度提供支持,如圖7所示。

圖7 車輛位置與興趣點(diǎn)互查頁面
車輛管理模塊包含車輛注冊(cè)、車輛查詢、歷史軌跡查詢?nèi)笾饕δ堋?/p>
系統(tǒng)中接受管理與監(jiān)控的車輛需要先進(jìn)行注冊(cè),需登記包括車輛單位、車牌等屬性,通過注冊(cè)后的車輛根據(jù)權(quán)限即可加入系統(tǒng)的監(jiān)控序列中,只有完成注冊(cè)的車輛才會(huì)列入系統(tǒng)查詢、監(jiān)控范圍。
車輛查詢是指用戶通過輸入車輛管理單位、車牌等條件等進(jìn)行條件查詢,查詢結(jié)果在地圖上高亮顯示。并且,用戶還可以查看目標(biāo)車輛的歷史運(yùn)行軌跡,并可以將歷史軌跡以URL形式進(jìn)行分享,如圖8所示。

圖8 車輛歷史運(yùn)行軌跡與分享頁面

圖9 車輛地理圍欄創(chuàng)建界面
該功能模塊主要功能是對(duì)車輛的屬性監(jiān)控規(guī)則以及空間監(jiān)控規(guī)則的配置。首先在地圖展示模塊中以勾畫的方式創(chuàng)建地理圍欄(如圖9),并在車輛監(jiān)控管理模塊中填寫屬性規(guī)則并選擇創(chuàng)建好的圍欄(如圖10),最后選擇警報(bào)信息接收人,并選擇郵件或短信報(bào)警通知方式(如圖11),完成監(jiān)控規(guī)則配置后系統(tǒng)將持續(xù)不斷的監(jiān)控車輛行為。若有監(jiān)控車輛出現(xiàn)符合違反監(jiān)控規(guī)則的情況,系統(tǒng)將立刻以短信或者郵件的方式通知責(zé)任人,幫助他第一時(shí)間做出響應(yīng)。

圖10 監(jiān)控規(guī)則創(chuàng)建頁面

圖11 接收人與報(bào)警信息推送方式管理界面
本文以提升對(duì)實(shí)時(shí)感知數(shù)據(jù)監(jiān)測(cè)、分析、應(yīng)用能力的探索為初衷,以開展北斗實(shí)時(shí)車輛監(jiān)控系統(tǒng)的研究與開發(fā)為落腳點(diǎn),對(duì)比較具有代表意義的兩個(gè)關(guān)鍵技術(shù)“實(shí)時(shí)地理信息數(shù)據(jù)發(fā)布與接入”、“監(jiān)控規(guī)則與地理圍欄的動(dòng)態(tài)創(chuàng)建”進(jìn)行了研究并提出了解決方案,并在此基礎(chǔ)上實(shí)現(xiàn)了一個(gè)具有車輛實(shí)時(shí)狀態(tài)統(tǒng)計(jì)圖展示功能、實(shí)時(shí)信息空間可視化功能、車輛管理、車輛監(jiān)控管理等功能有B/S架構(gòu)的北斗車輛實(shí)時(shí)監(jiān)測(cè)系統(tǒng)。在后續(xù)的研究中,需要從實(shí)時(shí)大數(shù)據(jù)動(dòng)態(tài)可視化角度進(jìn)一步提升系統(tǒng)可視化水平,從系統(tǒng)優(yōu)化角度進(jìn)一步提高系統(tǒng)性能,繼續(xù)為智慧城市時(shí)空基礎(chǔ)設(shè)施的全面應(yīng)用積累經(jīng)驗(yàn)、提供技術(shù)參考。
[1]國(guó)家測(cè)繪地理信息局. 智慧城市時(shí)空大數(shù)據(jù)與云平臺(tái)建設(shè)技術(shù)大綱(2019版)[S].
[2]鮑駿. 基于北斗定位的車輛監(jiān)控系統(tǒng)的研究[D]. 南京理工大學(xué),2014.
[3]盧麗敏. 基于北斗定位技術(shù)的車載監(jiān)控系統(tǒng)設(shè)計(jì)與研究[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.