摘 要:基于通用分組無線服務技術(GPRS)、全球衛星定位系統(GPS)、AJAX和Oracle,應用Google Maps API設計出了一套車輛實時監控系統。該系統具有對車輛實時監控、調度管理、限制行使區域、超速報警提醒等功能。與目前市場上出現的車輛管理系統相比,該系統具有適用范圍廣,穩定性好,靈活,可移植性強以及易操作等優點,具有較好的應用前景。
關鍵詞:通用分組無線服務技術; 全球衛星定位系統; Oracle; AJAX; Google Maps API
中圖分類號:TN967-34 文獻標識碼:A
文章編號:1004-373X(2011)17-0193-03
Design of Real-time Vehicle Monitoring System Based on GPRSGPS
HE Ting-ting, LUO Xiao-shu, LIAO Zhi-xian, HUANG Xiao-han
(College of Electronic Engineering, Guangxi Normal University, Guilin 541004, China)
Abstract: Based on the GPRS, GPS, AJAX and Oracle, a real-time monitoring system is designed by Google Maps API. The functions such as real-time monitoring of vehicles, dispatching management, limitation of driving area, speeding alarm, and so on are included in this system. Compared with other vehicles management systems, this system has advantages such as practicality, stability, flexibility, strong portability and simplify operation. It has a better application prospect.
Keywords: GPRS; GPS; Oracle; AJAX; Google Maps API
0 引 言
GPS全球定位系統是美國在1994年建成,具有在海、陸、空進行全方位實時三維導航與定位能力的衛星導航與定位系統。英國產業分析機構預測在2008—2013年,定位產業的年復合成長率為21.2%,將會成為Google、微軟、諾基亞等公司未來產品的關鍵功能[1]。本文基于GPS全球定位系統以及Google Maps API設計了一套車輛調度管理系統。公司管理人員可以通過該管理系統平臺對車輛進行實時監控、調度管理以及人員管理,從而對車隊進行有效的監控,提高了人車安全系數,增加了企業利潤收入,降低交通擁堵幾率,為社會提供更高水平的服務。該系統與以GIS,Google earth為平臺進行二次開發的系統相比,有著開發流程簡便,可移植性強等優點。只要擁有一臺裝有Web瀏覽器能聯網的電腦,用戶就可以通過本系統對車輛進行實時監控。
1 系統的工作原理
本系統通過GPS進行車輛導航,即應用GPS定位技術獲取車輛所在地的經度和緯度坐標、行駛車速、時間等相關信息。GPS接收模塊默認為每秒輸出一次定位數據,用戶通過設置主控器使其每隔一定時間向服務器發送一次數據。ARM CortexTM-M3為高級的32位微處理器內核,其任務是負責讀取GPS的定位信息,由GPRS模塊通過移動通信GPRS網絡傳送到服務器中,服務器端程序將車輛所在的位置和行走的軌跡繪制在Google地圖上[2]。
服務器端主要分為前臺實時監控模塊和基于Web的后臺監控管理模塊。前臺實時監控模塊主要采用TCP/IP協議與車載終端進行通信,解析和自定義編碼各種通信協議,管理和維護車載終端日常的運行情況。基于Web的后臺監控管理模塊主要采用PHP+Oracle,JavaScript及XML技術,采用自頂向下的思想構建關系數據庫模型,結合Google Maps API [1]提供的相當便捷的AJAX技術獲取查詢結果,這樣做一方面減少了流量,另一方面使得網頁實現了局部自動更新的功能,提高了用戶體驗速度[3-5]。
2 車輛實時監控系統的結構和功能設計
本系統可以實現車輛管理、用戶管理、數據統計、定位監控、行駛區域限制、數據備份和數據恢復等功能。
車輛管理功能 通過搜索設備名稱和日期,可從數據庫中查詢當天車輛的詳細信息,包括車牌號、車載電話號碼、車輛種類、司機信息及汽車運行狀態,從而達到對車輛的實時監控和管理的目的。
用戶管理功能 不同級別的用戶可以擁有不同的權限對車輛進行管理和操作,這些權限可以由管理員在網站后臺進行相應的設置。
數據統計功能 包括報警統計、超速行駛統計兩個功能。報警統計將車輛每次報警的信息,包括報警時間、報警地點都記錄在數據庫當中。同樣,超速行駛統計也將車輛每次超速行駛的信息都記錄在數據庫中(把車輛速度大于120 km/h的視為超速行駛),用戶在輸入查詢日期時,就可以查詢到當天的報警信息、超速信息的相關統計。
定位監控功能 車載終端固定間隔自動將定位數據回傳,通過GLatLng()函數把車載終端定位至Google地圖上,采用Google Maps API提供的Gmarker()地標函數把車載終端的定位信息顯示在地圖上,這樣即可實現對車輛的實時定位,其所定位的信息包括經度、緯度、車輛信息和行駛狀態等。
行駛區域限制功能 行駛區域限制需要預先設置車輛的行駛區域,當車輛超越行駛區域時,系統將以報警提示的方式提醒相應公司管理人員。
數據備份和恢復功能 一旦不慎丟失或損壞數據庫里的信息,可以重新導入備份好的后綴名為.Sql的文件,數據即可恢復到原始狀態。
3 服務器端關鍵技術的設計與實現
3.1 計算行車路程的方法
系統可以利用Google Maps API 計算行車總路程。首先假設地球作為一個完美的球體,半徑為常量R=6 378.137 km。計算球面兩點間弧長的算法為半徑*弧度,而弧度可以從兩點間的經緯度算出。此時,可以利用Google Maps API 提供的四個類方法推算出行車路程。它們分別為返回角度值緯度Glatlng.lat() 函數、返回角度值經度Glatlng.lng() 函數、返回弧度值緯度Glatlng.latRadians()函數和返回弧度值精度Glatlng.lngRadians()函數。
若令 var lat1= first.Glatlng.lat();
var lng1= first.Glatlng.lng ();
var lat2= second.Glatlng.latRadians();
var lng2= second.Glatlng.lngRadians();
則相鄰兩點間距離dist為:
dist=2arcsin(sin((lat1-lat2)/2))2+cos(lat1)cos(lat2)(sin((lng1-lng2)/2))2R
通過上述公式可以近似求出相鄰兩點間行車路程,遍歷所有行車點,把相鄰兩點間的行車路程進行疊加,即可近似求出行車總路程。由于發送數據的時間間隔很短,所以通過這個算法得出的行車路程和車輛實際行駛的路程公里數基本一致[6-7]。
3.2 軌跡回放的實現思想
系統通過調用數據庫中經度和緯度坐標、行駛車速、時間等車輛相關信息,可以實現軌跡回放功能。雖然在設計過程中可以采用直接讀取數據庫數據的方法進行軌跡回放,但是考慮到其擴展性遠遠不如XML文檔大,所以該系統采用了從XML文件中讀取數據并通過繪制Gpolyline折線來回放行車路線。實現該功能必須要預先定義好XML文件結構,這里令polyline為root節點下的一個子節點,在其屬性中規定相應的顏色、邊線寬度等,Polyline節點的子節點為lat,lon,data,speed等,用于定義每個節點的經度、緯度、行車時間以及速度等[8-9]。XML文檔設計好后,使用PHP語言編寫了一個服務器程序動態讀取數據庫數據和自動更新XML文件[8]。編寫一個HTML程序,利用JavaScript解析XML文檔,解析整個XML文檔就是使用GXmlHttp對象把需要處理的節點取出(創建GXmlHttp對象非常簡單,直接調用GXmlHttp.create()方法即可)。利用函數getElementsByTagName()獲取polyline節點,通過函數Node.childNodes[k].nodeName()獲取polyline節點的子節點(變量k表示polyline節點下子節點的總數),根據兩點間確定一條直線的公理,循環讀取數據并繪制行車軌跡。
3.3 行駛區域限制功能的實現
行駛區域限制功能的實現最重要的是系統要建立XML文檔,在文檔里還必須預先設置好車輛的行駛區域,把整個區域相應的經度和緯度信息存儲在XML文檔中,通過利用PHP語言編寫相應的服務器程序從XML文件中讀取數據并自動在地圖上繪制Gpolygon多邊形來表示規定的行駛區域范圍。當地圖上需要繪制的多邊形區域很大時,無論是直接寫JavaScript腳本還是從XML文檔中讀取數據,數據交換量都沒有減少,這時,可以先利用PHP語言編寫一個對數據進行壓縮編碼的程序,通過使用Google Maps API提供的fromEncodes()的工廠方法利用編碼后的數據創建相應的多邊形對象,傳遞給客戶端的瀏覽器進行解析。若車輛超越了在地圖上繪制的多邊形區域,則會彈出一個對話框來警示管理人員[10]。
4 實驗結果與分析
通過在實驗車上安裝該系統的硬件平臺,與系統的軟件平臺聯合進行行車實驗。實驗的路線是從桂林市大學生公寓城開始,經過花藝館,向左轉至位于普陀路的廣西師范大學西大門。圖1即為車輛軌跡的回放圖,從圖中可以看出此路線與預先設定的實驗路線一致。通過系統計算出來的路程距離為1.22 km,車速是45 km/h。而通過Google earth計算出來的路程約為1.2 km,它們之間的誤差范圍小于等于20 m。經過多次實驗,結果表明該系統符合實際運用的要求。
5 結 語
地球上任何一個位置都有相應的經度和緯度,可以利用技術在地圖上顯示。隨著GPS全球定位技術的成熟,可以實現將GPS定位得到的經度、緯度、速度、方向、車輛狀態等詳細信息通過GSM/GPRS sim300模塊傳送到服務器中,利用服務器端實現對車輛的管理及調度;隨著GPS全球定位技術的廣泛使用以及Google Maps API的不斷完善,可以對車輛實現更精確的定位及監控;隨著3G技術的不斷發展,未來完全可以通過
手機實現對車輛的管理及調度,屆時,該導航產品和管
理系統不僅僅是應用在商業領域,還是人們娛樂、生活的必備工具。該車輛調度管理系統可以應用在物流車隊、私家車、租賃公司、120急救車輛調度、公交車隊、銀行價款車等領域,具有較廣泛的應用前景。
參 考 文 獻
[1]熊志昂,李紅瑞,賴順香,等.GPS技術與工程應用[M].北京:國防工業出版社,2005.
[2]趙后俠.嵌入式車載監控終端設計與實現[D].南京:南京理工大學,2005.
[3]沈時宇.Google成功背后的技術:AJAX網頁程序設計[M].北京:電子工業出版社,2008.
[4]陳宇航.PHP5+MySQL5 Web應用開發寶典[M].北京:電子工業出版社,2007.
[5]陳軍.PHP+MySQL經典案例剖析[M].北京:清華大學出版社,2008.
[6]CHATWIN Simon.關系數據庫和SQL編程[M].北京:清華大學出版社,2005.
[7]姜江.Power Designer分析設計與應用[M].北京:電子工業出版社,2004.
[8]PEJIC Aleksandar, PLETL Szilveszter, PEJIC Bojan. An expert system for tourists using google maps API [C]// Intelligent Systems and Information. Subtica: IEEE, 2009: 317-322.
[9]SAKAIRI Takeo, TAMADA Takashi, NAKATA Hideo .GIS crisis-management systems using ajax technology [C]// SICE Annual Conference. Tokyo: [s.n.], 2008: 3043-3046.
[10]江寬,龔小鵬.Google API開發詳解:Google Maps與Google Earth雙劍合璧[M].北京:電子工業出版社,2010.