基于GPS&GPRS車輛實時監(jiān)控系統(tǒng)的設(shè)計
摘要:基于通用分組無線服務技術(shù)(GPRS)、全球衛(wèi)星定位系統(tǒng)(GPS)、AJAX和Oracle,應用Google Maps API設(shè)計出了一套車輛實時監(jiān)控系統(tǒng)。該系統(tǒng)具有對車輛實時監(jiān)控、調(diào)度管理、限制行使區(qū)域、超速報警提醒等功能。與目前市場上出現(xiàn)的車輛管理系統(tǒng)相比,該系統(tǒng)具有適用范圍廣,穩(wěn)定性好,靈活,可移植性強以及易操作等優(yōu)點,具有較好的應用前景。
關(guān)鍵詞:通用分組無線服務技術(shù);全球衛(wèi)星定位系統(tǒng);Oracle;AJAX;Google Maps API
0 引言
GPS全球定位系統(tǒng)是美國在1994年建成,具有在海、陸、空進行全方位實時三維導航與定位能力的衛(wèi)星導航與定位系統(tǒng)。英國產(chǎn)業(yè)分析機構(gòu)預測在2008-2013年,定位產(chǎn)業(yè)的年復合成長率為21.2%,將會成為Google、微軟、諾基亞等公司未來產(chǎn)品的關(guān)鍵功能。本文基于GPS全球定位系統(tǒng)以及Google Maps API設(shè)計了一套車輛調(diào)度管理系統(tǒng)。公司管理人員可以通過該管理系統(tǒng)平臺對車輛進行實時監(jiān)控、調(diào)度管理以及人員管理,從而對車隊進行有效的監(jiān)控,提高了人車安全系數(shù),增加了企業(yè)利潤收入,降低交通擁堵幾率,為社會提供更高水平的服務。該系統(tǒng)與以GIS,Google earth為平臺進行二次開發(fā)的系統(tǒng)相比,有著開發(fā)流程簡便,可移植性強等優(yōu)點。只要擁有一臺裝有Web瀏覽器能聯(lián)網(wǎng)的電腦,用戶就可以通過本系統(tǒng)對車輛進行實時監(jiān)控。
1 系統(tǒng)的工作原理
本系統(tǒng)通過GPS進行車輛導航,即應用GPS定位技術(shù)獲取車輛所在地的經(jīng)度和緯度坐標、行駛車速、時間等相關(guān)信息。GPS接收模塊默認為每秒輸出一次定位數(shù)據(jù),用戶通過設(shè)置主控器使其每隔一定時間向服務器發(fā)送一次數(shù)據(jù)。ARM CortexTM-M3為高級的32位微處理器內(nèi)核,其任務是負責讀取GPS的定位信息,由GPRS模塊通過移動通信GPRS網(wǎng)絡(luò)傳送到服務器中,服務器端程序?qū)④囕v所在的位置和行走的軌跡繪制在Google地圖上。
服務器端主要分為前臺實時監(jiān)控模塊和基于Web的后臺監(jiān)控管理模塊。前臺實時監(jiān)控模塊主要采用TCP/IP協(xié)議與車載終端進行通信,解析和自定義編碼各種通信協(xié)議,管理和維護車載終端日常的運行情況?;赪eb的后臺監(jiān)控管理模塊主要采用PHP+Ora-tie,JavaScript及XML技術(shù),采用自頂向下的思想構(gòu)建關(guān)系數(shù)據(jù)庫模型,結(jié)合Google Maps API提供的相當便捷的AJAX技術(shù)獲取查詢結(jié)果,這樣做一方面減少了流量,另一方面使得網(wǎng)頁實現(xiàn)了局部自動更新的功能,提高了用戶體驗速度。
2 車輛實時監(jiān)控系統(tǒng)的結(jié)構(gòu)和功能設(shè)計
本系統(tǒng)可以實現(xiàn)車輛管理、用戶管理、數(shù)據(jù)統(tǒng)計、定位監(jiān)控、行駛區(qū)域限制、數(shù)據(jù)備份和數(shù)據(jù)恢復等功能。
車輛管理功能 通過搜索設(shè)備名稱和日期,可從數(shù)據(jù)庫中查詢當天車輛的詳細信息,包括車牌號、車載電話號碼、車輛種類、司機信息及汽車運行狀態(tài),從而達到對車輛的實時監(jiān)控和管理的目的。
用戶管理功能 不同級別的用戶可以擁有不同的權(quán)限對車輛進行管理和操作,這些權(quán)限可以由管理員在網(wǎng)站后臺進行相應的設(shè)置。
數(shù)據(jù)統(tǒng)計功能 包括報警統(tǒng)計、超速行駛統(tǒng)計兩個功能。報警統(tǒng)計將車輛每次報警的信息,包括報警時間、報警地點都記錄在數(shù)據(jù)庫當中。同樣,超速行駛統(tǒng)計也將車輛每次超速行駛的信息都記錄在數(shù)據(jù)庫中(把車輛速度大于120 km/h的視為超速行駛),用戶在輸入查詢?nèi)掌跁r,就可以查詢到當天的報警信息、超速信息的相關(guān)統(tǒng)計。
定位監(jiān)控功能 車載終端固定間隔自動將定位數(shù)據(jù)回傳,通過GLatLng()函數(shù)把車載終端定位至Google地圖上,采用Google Maps API提供的Gmarker()地標函數(shù)把車載終端的定位信息顯示在地圖上,這樣即可實現(xiàn)對車輛的實時定位,其所定位的信息包括經(jīng)度、緯度、車輛信息和行駛狀態(tài)等。
行駛區(qū)域限制功能 行駛區(qū)域限制需要預先設(shè)置車輛的行駛區(qū)域,當車輛超越行駛區(qū)域時,系統(tǒng)將以報警提示的方式提醒相應公司管理人員。
數(shù)據(jù)備份和恢復功能 一旦不慎丟失或損壞數(shù)據(jù)庫里的信息,可以重新導入備份好的后綴名為.Sql的文件,數(shù)據(jù)即可恢復到原始狀態(tài)。
3 服務器端關(guān)鍵技術(shù)的設(shè)計與實現(xiàn)
3.1 計算行車路程的方法
系統(tǒng)可以利用Google Maps API計算行車總路程。首先假設(shè)地球作為一個完美的球體,半徑為常量R=6 378.137 km。計算球面兩點間弧長的算法為半徑*弧度,而弧度可以從兩點間的經(jīng)緯度算出。此時,可以利用Google Maps API提供的四個類方法推算出行車路程。它們分別為返回角度值緯度Glatlng.lat()函數(shù)、返回角度值經(jīng)度Glatlng.lng()函數(shù)、返回弧度值緯度Glatlng.latRadians()函數(shù)和返回弧度值精度Glatlng.lngRadians()函數(shù)。
通過上述公式可以近似求出相鄰兩點間行車路程,遍歷所有行車點,把相鄰兩點間的行車路程進行疊加,即可近似求出行車總路程。由于發(fā)送數(shù)據(jù)的時間間隔很短,所以通過這個算法得出的行車路程和車輛實際行駛的路程公里數(shù)基本一致。
3.2 軌跡回放的實現(xiàn)思想
系統(tǒng)通過調(diào)用數(shù)據(jù)庫中經(jīng)度和緯度坐標、行駛車速、時間等車輛相關(guān)信息,可以實現(xiàn)軌跡回放功能。雖然在設(shè)計過程中可以采用直接讀取數(shù)據(jù)庫數(shù)據(jù)的方法進行軌跡回放,但是考慮到其擴展性遠遠不如XML文檔大,所以該系統(tǒng)采用了從XML文件中讀取數(shù)據(jù)并通過繪制Gpolyline折線來回放行車路線。實現(xiàn)該功能必須要預先定義好XML文件結(jié)構(gòu),這里令polyline為root節(jié)點下的一個子節(jié)點,在其屬性中規(guī)定相應的顏色、邊線寬度等,Polyline節(jié)點的子節(jié)點為lat,lon,data,speed等,用于定義每個節(jié)點的經(jīng)度、緯度、行車時間以及速度等。XML文檔設(shè)計好后,使用PHP語言編寫了一個服務器程序動態(tài)讀取數(shù)據(jù)庫數(shù)據(jù)和自動更新XML文件。編寫一個HTML程序,利用JavaScript解析XML文檔,解析整個XML文檔就是使用GXmlHttp對象把需要處理的節(jié)點取出(創(chuàng)建GXm-lHttp對象非常簡單,直接調(diào)用GXmlHttp.create()方法即可)。利用函數(shù)getElementsByTagName()獲取polyline節(jié)點,通過函數(shù)Node.childNodes[k].node-Name()獲取polyline節(jié)點的子節(jié)點(變量k表示poly-
line節(jié)點下子節(jié)點的總數(shù)),根據(jù)兩點間確定一條直線的公理,循環(huán)讀取數(shù)據(jù)并繪制行車軌跡。
3.3 行駛區(qū)域限制功能的實現(xiàn)
行駛區(qū)域限制功能的實現(xiàn)最重要的是系統(tǒng)要建立XML文檔,在文檔里還必須預先設(shè)置好車輛的行駛區(qū)域,把整個區(qū)域相應的經(jīng)度和緯度信息存儲在XML文檔中,通過利用PHP語言編寫相應的服務器程序從XML文件中讀取數(shù)據(jù)并自動在地圖上繪制Gpolygon多邊形來表示規(guī)定的行駛區(qū)域范圍。當?shù)貓D上需要繪制的多邊形區(qū)域很大時,無論是直接寫JavaScript腳本還是從XML文檔中讀取數(shù)據(jù),數(shù)據(jù)交換量都沒有減少,這時,可以先利用PHP語言編寫一個對數(shù)據(jù)進行壓縮編碼的程序,通過使用Google Maps API提供的fromEncodes()的工廠方法利用編碼后的數(shù)據(jù)創(chuàng)建相應的多邊形對象,傳遞給客戶端的瀏覽器進行解析。若車輛超越了在地圖上繪制的多邊形區(qū)域,則會彈出一個對話框來警示管理人員。
4 實驗結(jié)果與分析
通過在實驗車上安裝該系統(tǒng)的硬件平臺,與系統(tǒng)的軟件平臺聯(lián)合進行行車實驗。實驗的路線是從桂林市大學生公寓城開始,經(jīng)過花藝館,向左轉(zhuǎn)至位于普陀路的廣西師范大學西大門。圖1即為車輛軌跡的回放圖,從圖中可以看出此路線與預先設(shè)定的實驗路線一致。通過系統(tǒng)計算出來的路程距離為1.22 km,車速是45 km/h。而通過Google earth計算出來的路程約為1.2 km,它們之間的誤差范圍小于等于20 m。經(jīng)過多次實驗,結(jié)果表明該系統(tǒng)符合實際運用的要求。
5 結(jié)語
地球上任何一個位置都有相應的經(jīng)度和緯度,可以利用技術(shù)在地圖上顯示。隨著GPS全球定位技術(shù)的成熟,可以實現(xiàn)將GPS定位得到的經(jīng)度、緯度、速度、方向、車輛狀態(tài)等詳細信息通過GSM/GPRS sim300模塊傳送到服務器中,利用服務器端實現(xiàn)對車輛的管理及調(diào)度;隨著GPS全球定位技術(shù)的廣泛使用以及GoogleMaps API的不斷完善,可以對車輛實現(xiàn)更精確的定位及監(jiān)控;隨著3G技術(shù)的不斷發(fā)展,未來完全可以通過手機實現(xiàn)對車輛的管理及調(diào)度,屆時,該導航產(chǎn)品和管理系統(tǒng)不僅僅是應用在商業(yè)領(lǐng)域,還是人們娛樂、生活的必備工具。該車輛調(diào)度管理系統(tǒng)可以應用在物流車隊、私家車、租賃公司、120急救車輛調(diào)度、公交車隊、銀行價款車等領(lǐng)域,具有較廣泛的應用前景。