葉紅衛(wèi)
(河源職業(yè)技術(shù)學(xué)院電子與信息工程學(xué)院 廣東河源 517000)
在移動(dòng)環(huán)境下基于Android的車輛位置信息監(jiān)控應(yīng)用研究
葉紅衛(wèi)
(河源職業(yè)技術(shù)學(xué)院電子與信息工程學(xué)院 廣東河源 517000)
提出基于Android的車輛位置信息監(jiān)控,通過建立Web服務(wù)發(fā)布車輛的GPS信息,利用Android平臺(tái)的強(qiáng)大的網(wǎng)絡(luò)功能及Google Maps位置感知,解決了在移動(dòng)環(huán)境下車輛GPS監(jiān)控系統(tǒng)對(duì)車輛位置信息進(jìn)行監(jiān)控的問題。
Android;GPS監(jiān)控;Google Maps
車載GPS系統(tǒng)是集中應(yīng)用了自動(dòng)定位技術(shù)、地理信息系統(tǒng)(簡稱GIS)與數(shù)據(jù)庫技術(shù)、計(jì)算機(jī)技術(shù)、無線通信技術(shù)的高科技綜合系統(tǒng)[1]。GPS系統(tǒng)同時(shí)也廣泛應(yīng)用于長途客運(yùn)、出租、公交、物流、工程運(yùn)輸、危險(xiǎn)品運(yùn)輸?shù)纫苿?dòng)目標(biāo)安防、監(jiān)控、管理領(lǐng)域。該GPS系統(tǒng)一般分為兩部分,一部分由安裝在汽車上的GPS接收機(jī)和顯示設(shè)備組成;另一部分由計(jì)算機(jī)控制中心組成。計(jì)算機(jī)控制中心是由機(jī)動(dòng)車管理部門授權(quán)和組建的,它負(fù)責(zé)隨時(shí)觀察轄區(qū)內(nèi)指定監(jiān)控的汽車的動(dòng)態(tài)和交通情況。車輛的情況由計(jì)算機(jī)控制中心實(shí)施監(jiān)控,同時(shí),也存在這樣的問題,要了解車的運(yùn)行狀況只能通過控制中心,這就限定了該系統(tǒng)的移動(dòng)性。為此,本文提出了一個(gè)在移動(dòng)環(huán)境下(手持智能終端等移動(dòng)設(shè)備)對(duì)車輛的位置信息監(jiān)控方案。
Android平臺(tái)的特點(diǎn)之一就是內(nèi)置應(yīng)用程序和使用SDK創(chuàng)建的應(yīng)用程序之間沒有任何區(qū)別。這就意味著開發(fā)人員可以編寫強(qiáng)大的應(yīng)用程序來使用設(shè)備上的可用資源[2]。Android平臺(tái)的設(shè)計(jì)使得其比以前的平臺(tái)具有更強(qiáng)的容錯(cuò)能力,Android手機(jī)設(shè)備運(yùn)行在Linux操作系統(tǒng)下,這樣運(yùn)行的應(yīng)用程序具有很強(qiáng)的安全性。每個(gè)Android應(yīng)用程序均在其自身的虛擬機(jī)中運(yùn)行。Android應(yīng)用程序?yàn)橥泄艽a,因此,由應(yīng)用程序引發(fā)的系統(tǒng)崩潰的可能性非常小,同時(shí)也降低了設(shè)備崩潰的可能性[3]。
Web服務(wù)是一種構(gòu)建應(yīng)用程序的普遍模型,可以在任何支持網(wǎng)絡(luò)通信的操作系統(tǒng)中實(shí)施運(yùn)行。Web服務(wù)是一個(gè)應(yīng)用組件,它邏輯性的為其他應(yīng)用程序提供數(shù)據(jù)與服務(wù)。各應(yīng)用程序通過網(wǎng)絡(luò)協(xié)議和規(guī)定的一些標(biāo)準(zhǔn)數(shù)據(jù)格式(Http,XML,Soap)來訪問Web Service,通過Web Service內(nèi)部執(zhí)行得到所需結(jié)果。
Web服務(wù)是一種在技術(shù)中立的網(wǎng)絡(luò)端點(diǎn)上公開API的方式。POX、REST和SOAP是目前經(jīng)常使用的Web服務(wù),它們有各自的優(yōu)缺點(diǎn)??紤]到本文提到的應(yīng)用是基于移動(dòng)設(shè)備的,且是處在Android的應(yīng)用環(huán)境中,資源是非常有限的。所以,采用基于POX(plain old XML)的Web服務(wù)。
本系統(tǒng)通過車載的GPS系統(tǒng)獲取車輛的GPS數(shù)據(jù),并通過車載GPS數(shù)據(jù)發(fā)送模塊以GPRS接入移動(dòng)運(yùn)營商的移動(dòng)網(wǎng)絡(luò),通過Internet將車輛的GPS數(shù)據(jù)傳送至車載遠(yuǎn)程監(jiān)控服務(wù)器。在服務(wù)器上通過Web服務(wù)形式提供的遠(yuǎn)程調(diào)用,使用移動(dòng)手持終端獲取車輛的GPS數(shù)據(jù)。并通過Google Maps進(jìn)行車輛位置的感知,實(shí)現(xiàn)在移動(dòng)環(huán)境下對(duì)車輛的實(shí)時(shí)監(jiān)控與調(diào)度。系統(tǒng)框架如圖1所示。
圖1 車輛位置信息移動(dòng)監(jiān)控系統(tǒng)框架
在車載導(dǎo)航系統(tǒng)軟件設(shè)計(jì)過程中,主要利用了Android軟件平臺(tái)的Linux內(nèi)核層、Java程序運(yùn)行環(huán)境、普通函數(shù)庫、應(yīng)用框架層、Android應(yīng)用程序?qū)?。利用Android的豐富的組件API接口進(jìn)行開發(fā)。
車載GPS數(shù)據(jù)發(fā)送模塊將車輛的GPS數(shù)據(jù)以GPX(GPS Exchange Format,GPX是一種XML模式,支持存儲(chǔ)中轉(zhuǎn)站、軌跡和路線。)的格式上傳到車載遠(yuǎn)程監(jiān)控服務(wù)器,GPS數(shù)據(jù)遠(yuǎn)程獲取模塊通過調(diào)用車載遠(yuǎn)程監(jiān)控服務(wù)器的Web服務(wù)獲取車輛的GPS數(shù)據(jù)。同時(shí)為了保證數(shù)據(jù)的安全性,獲取數(shù)據(jù)時(shí)應(yīng)通過身份驗(yàn)證。Android提供了java.net和org.apache.httpclient包支持聯(lián)網(wǎng)功能,其他相關(guān)包處理內(nèi)部聯(lián)網(wǎng)的細(xì)節(jié)和常規(guī)連接屬性等。
模塊應(yīng)用Android的HttpClient API并結(jié)合使用Apache的ResponseHandler和Android的Handler,并使用線程技術(shù),在非用戶界面線程進(jìn)行網(wǎng)絡(luò)請(qǐng)求。使用POX對(duì)車載遠(yuǎn)程監(jiān)控服務(wù)器發(fā)起網(wǎng)絡(luò)調(diào)用,自定義了performRequestGps()實(shí)現(xiàn)http調(diào)用,parseG-psResult()實(shí)現(xiàn)解析返回的GPX格式的GPS數(shù)據(jù)。performRequestGps()方法片段代碼:
接收來自GPS數(shù)據(jù)遠(yuǎn)程獲取模塊的車輛GPS信息實(shí)施車輛定位,車輛的定位使用GPS信息中的經(jīng)度和緯度來確定,在Android中的GeoPoint類代表了一個(gè)地點(diǎn)的經(jīng)緯度,函數(shù)格式為:GeoPoint(int latitudeE6,int longitudeE6),E6是微度,即度數(shù)乘以1 000 000[4]。建立 GeoPoint后,調(diào)用 MapController對(duì)象的animateTo方法將該位置設(shè)定為地圖的中心點(diǎn)。下面為車輛定位模塊中的片段代碼:
在Android平臺(tái)中構(gòu)建Google Maps位置感知應(yīng)用程序,將會(huì)經(jīng)常使用LocationProvider和LocationManager。LocationProvider使用幾種度量提供位置數(shù)據(jù),數(shù)據(jù)則通過LocationManager進(jìn)行訪問。LocationManager也支持添加一個(gè) LocationListener,可以將設(shè)備位置的更新或根據(jù)指定的經(jīng)度和緯度的臨近位置直接觸發(fā)一個(gè)Intent。顯示車輛的位置地圖,主要采用Android中的MapActivity和MapView兩個(gè)類,通過擴(kuò)展MapActivity類,確保每個(gè)進(jìn)程僅使用一個(gè)實(shí)例,以及啟用com.google.android.maps包。MapView顯示地圖的拼接數(shù)據(jù),在移動(dòng)和縮放地圖是通過網(wǎng)絡(luò)獲取這些數(shù)據(jù),MapView支持平面地圖模式、衛(wèi)星模式、街道視圖模式及交通模式[5]。車輛位置的標(biāo)記使用Android中的Overlay類實(shí)現(xiàn),通過擴(kuò)展該類實(shí)現(xiàn)車輛當(dāng)前位置的標(biāo)記。
利用Android通用框架和與設(shè)備無關(guān)的應(yīng)用程序開發(fā)平臺(tái),實(shí)現(xiàn)了在移動(dòng)環(huán)境下對(duì)車輛位置信息監(jiān)控。通過一個(gè)真實(shí)的出租車的GPS信息(片段),在PC中將其GPX文件通過DDMS工具將其位置信息與軌跡發(fā)送到模擬器進(jìn)行系統(tǒng)的模擬運(yùn)行。實(shí)驗(yàn)結(jié)果表明在Android中可以非常方便顯示車輛的位置信息和行駛的軌跡[6]。如圖2所示。截圖顯示的范圍是河源市中山大道附近區(qū)域,藍(lán)色點(diǎn)為出租車行駛的起始點(diǎn),黃色點(diǎn)為出租車行駛的終點(diǎn)。深藍(lán)色的軌跡為出租車的行駛軌跡。
圖2 Android中顯示的車輛位置信息
將Android開發(fā)平臺(tái)和車載GPS系統(tǒng)進(jìn)行結(jié)合,在移動(dòng)環(huán)境下實(shí)現(xiàn)了對(duì)車輛位置信息的監(jiān)控,是對(duì)現(xiàn)有的計(jì)算機(jī)控制中心系統(tǒng)的不足進(jìn)行有力的補(bǔ)充,滿足了人們?cè)谝苿?dòng)環(huán)境下對(duì)車輛的信息監(jiān)控,為其他開發(fā)平臺(tái)的類似系統(tǒng)開發(fā)提供一個(gè)可行的參考方案。
[1] 黃帥.嵌入式車載導(dǎo)航的設(shè)計(jì)和實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,24(10):284-285.
[2] 張波,高朝勤,楊越.Google Android揭秘[M].北京:人民郵電出版社,2010:8-11.
[3] 張魏,李卉.Android移動(dòng)應(yīng)用開發(fā)從入門到精通[M].北京:人民郵電出版社,2010:37-40.
[4] 農(nóng)麗萍,王力虎,黃一平.Android在嵌入式車載導(dǎo)航系統(tǒng)的應(yīng)用研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31 (11):2473-2476.
[5] 曾健平,邵艷潔.Android系統(tǒng)架構(gòu)及應(yīng)用程序開發(fā)研究[J].微計(jì)算機(jī)信息,2011(9):1-3.
[6] 黃志勇,趙霽.基于Android平臺(tái)的移動(dòng)位置信息服務(wù)開發(fā)研究[J].計(jì)算機(jī)應(yīng)用,2011(12):22-26.
Application Research on Vehicles Location Monitoring Based on Android in Mobile Environment
YE Hong-wei
(School of Electronic and Information Engineering,Heyuan Polytechnic,Heyuan 517000,China)
The paper proposes the vehicles location monitoring based on Android.Based on Web service,vehicles GPS information can be published.Through strong Web functions of Android platform and Google Maps,vehicles location can be monitored by vehicles location monitoring system in mobile environment.
Android;GPS monitoring;Google Maps
TP 311.52
A
1672-2434(2012)01-0022-03
2011-10-21
葉紅衛(wèi)(1979-),男,講師、網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)師,從事研究方向:計(jì)算機(jī)應(yīng)用技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)