鄭州輕工業(yè)學(xué)院計(jì)算機(jī)與通信工程學(xué)院 鄒東堯 劉 寬 李娜娜
隨著智能手機(jī)的進(jìn)一步普及和移動(dòng)互聯(lián)網(wǎng)的飛速發(fā)展,基于手機(jī)上的應(yīng)用越來(lái)越深入人們的生產(chǎn)和生活[1]。本文研究主要基于安卓手機(jī)對(duì)GPS和WiFi的支持[2],設(shè)計(jì)和實(shí)現(xiàn)外勤人員實(shí)時(shí)定位與歷史行動(dòng)軌跡追查監(jiān)管系統(tǒng)[3]。該系統(tǒng)可用于各個(gè)企業(yè)或者單位當(dāng)前面臨的外勤智能化高效管理,比如針對(duì)某高端小區(qū)物業(yè)保潔、保安等外勤人員,盡管在其工作場(chǎng)所都有視頻監(jiān)控設(shè)備,但是并不能做到無(wú)死角的追蹤與監(jiān)督。如果能做到遠(yuǎn)程實(shí)時(shí)監(jiān)控和歷史行動(dòng)軌跡的追查[4],則可以對(duì)在工作時(shí)間內(nèi)消極怠工或其他情況起到一個(gè)高效的監(jiān)督作用。而采用該系統(tǒng)只需要外勤人員手機(jī)上安裝一個(gè)APP,然后接入WiFi網(wǎng)絡(luò),管理人員就可以在遠(yuǎn)端對(duì)所有外勤人員進(jìn)行實(shí)時(shí)準(zhǔn)確定位和歷史軌跡追查,大幅度降低用于管理平臺(tái)運(yùn)營(yíng)維護(hù)的人力、時(shí)間和財(cái)務(wù)[5]等成本。
本系統(tǒng)框圖如圖1所示,整個(gè)系統(tǒng)框架包括4個(gè)部分,分別是管理客戶(hù)端、外勤手機(jī)客戶(hù)端、服務(wù)器端、通信網(wǎng)絡(luò)。其中,管理客戶(hù)端用于系統(tǒng)管理者對(duì)于外勤人員進(jìn)行監(jiān)控管理,它可以利用手機(jī)終端或者PC機(jī),通過(guò)有線或者無(wú)線接入因特網(wǎng),打開(kāi)瀏覽器訪問(wèn)服務(wù)器。外勤手機(jī)客戶(hù)端采用安卓系統(tǒng),安裝APP,接收GPS定位信息,通過(guò)WiFi網(wǎng)絡(luò)將定位信息發(fā)送給服務(wù)器端處理。服務(wù)器端接收外勤手機(jī)客戶(hù)端定位信息進(jìn)行本地顯示與存儲(chǔ),同時(shí)它還能接受并處理管理客戶(hù)端的訪問(wèn)請(qǐng)求。通信網(wǎng)絡(luò)不僅包括管理客戶(hù)端與服務(wù)器端之間的有線局域網(wǎng)、WiFi、GPRS、Internet網(wǎng)絡(luò),而且包括服務(wù)器端與外勤客戶(hù)端之間的WiFi網(wǎng)絡(luò),還包括外勤客戶(hù)端與GPS衛(wèi)星之間的通信網(wǎng)絡(luò)。
系統(tǒng)運(yùn)行時(shí),外勤手機(jī)客戶(hù)端會(huì)以一定頻率周期性采集手機(jī)GPS位置信息,并將定位信息通過(guò)WiFi上傳給服務(wù)器端。服務(wù)器端接收信息后,將信息處理顯示并儲(chǔ)存在數(shù)據(jù)庫(kù)中。管理手機(jī)客戶(hù)端或者管理PC機(jī)客戶(hù)端通過(guò)瀏覽器查看信息可以采用以下兩種方式,第一種可以查看實(shí)時(shí)定位信息,此時(shí)系統(tǒng)將最近一次外勤手機(jī)客戶(hù)端上傳的位置點(diǎn)顯示在百度地圖上,以確定當(dāng)前外勤手機(jī)持有者的準(zhǔn)確位置。第二種方式則是可以查看歷史軌跡回放,此時(shí)系統(tǒng)將之前外勤手機(jī)客戶(hù)端上傳的歷史位置信息從服務(wù)器的數(shù)據(jù)庫(kù)中提取并處理,在百度地圖上將這些位置點(diǎn)按照時(shí)間先后順序連接起來(lái)形成歷史行動(dòng)軌跡圖。
外勤手機(jī)客戶(hù)端應(yīng)用程序基于安卓手機(jī),程序代碼使用Java語(yǔ)言,APP的編譯全部在Eclipse平臺(tái)上完成。在功能上負(fù)責(zé)采集定位信息并將信息上傳給服務(wù)器,位置信息采集交互如圖2所示。
圖2 位置信息采集交互Fig.2 position information collection interaction
外勤手機(jī)客戶(hù)端APP包括定位信息采集模塊和定位信息上傳模塊,其中,定位信息的采集模塊利用百度地圖的BaiDuMap API(應(yīng)用接口)[6]實(shí)現(xiàn),定位信息的上傳模塊使用Socket與服務(wù)器進(jìn)行信息交互,將信息發(fā)送給服務(wù)器,信息的采集和上傳是有著固定頻率的。在利用BaiDuMap API獲取GPS位置信息時(shí)不僅需要把手機(jī)的GPS開(kāi)關(guān)設(shè)置為打開(kāi),還需要在APP工程中導(dǎo)入相對(duì)應(yīng)的Jar包,這樣才可以使用已經(jīng)封裝好的get方法,對(duì)數(shù)據(jù)包進(jìn)行解析。
如外勤手機(jī)客戶(hù)端獲取不到GPS信號(hào)時(shí),APP會(huì)認(rèn)為手機(jī)沒(méi)有打開(kāi)GPS開(kāi)關(guān),會(huì)直接跳出提示開(kāi)關(guān)。手機(jī)會(huì)以一定的頻率來(lái)周期性來(lái)對(duì)位置信息的采集和上傳,當(dāng)APP通過(guò)手機(jī)獲取到GPS位置信息后,會(huì)將GPS位置信息解析為json格式的數(shù)據(jù)包,以作發(fā)送準(zhǔn)備。再之后APP會(huì)通過(guò)WiFi建立與服務(wù)器的Socket連接[7],手機(jī)會(huì)將json格式的位置信息發(fā)送給服務(wù)器,并等待服務(wù)器的ACK回應(yīng),如未收到ACK回應(yīng),顯示發(fā)送失敗,收到則顯示發(fā)送成功。之后會(huì)判斷定時(shí)器是否超時(shí),超時(shí)將會(huì)繼續(xù)進(jìn)行下一次的位置信息采集與上傳。APP程序設(shè)計(jì)流程圖如圖3所示。
圖1 系統(tǒng)框圖Fig.1 System Block Diagram
系統(tǒng)程序的代碼使用Java語(yǔ)言,設(shè)計(jì)MVC三層結(jié)構(gòu)[8],該框架結(jié)構(gòu)可以將網(wǎng)頁(yè)與數(shù)據(jù)庫(kù)之間的程序分為三層:分別是視圖層,控制器層和模型層。提高代碼的可重用性。并且模塊之間相互獨(dú)立,提高了應(yīng)用程序的可配置性,有利于軟件工程化化管理[9]。服務(wù)器分為兩大模塊,第一個(gè)模塊是接收存儲(chǔ)位置信息,服務(wù)器會(huì)接收外勤手機(jī)發(fā)送的json格式數(shù)據(jù)包,并會(huì)將數(shù)據(jù)包解析成詳細(xì)的經(jīng)緯度信息,存儲(chǔ)在數(shù)據(jù)庫(kù)中,位置信息的處理存儲(chǔ)過(guò)程如圖4所示。第二個(gè)模塊是提取處理模塊,在管理端瀏覽器需要訪問(wèn)信息時(shí),服務(wù)器會(huì)從數(shù)據(jù)庫(kù)中將信息提取出來(lái),并在對(duì)信息進(jìn)行處理之后,確定位置點(diǎn),將位置點(diǎn)定位在頁(yè)面上,使用MyLocationOverly方法[7]把百度地圖覆蓋在位置點(diǎn)上,對(duì)頁(yè)面空白進(jìn)行填充。這時(shí)在瀏覽器頁(yè)面上可以看到位置的顯示,位置信息的提取處理過(guò)程如圖5所示。
圖3 APP程序設(shè)計(jì)流程圖Fig.3 APP program design flow chart
在提取處理模塊中,實(shí)現(xiàn)的是系統(tǒng)的兩個(gè)功能,第一個(gè)是實(shí)時(shí)定位功能。管理端瀏覽器頁(yè)面上向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器會(huì)返回最新一次上傳的位置點(diǎn)。第二個(gè)功能是歷史運(yùn)動(dòng)軌跡的監(jiān)管功能。管理端瀏覽器向服務(wù)器發(fā)出請(qǐng)求,則服務(wù)器提取一段時(shí)間內(nèi)的位置點(diǎn),使這些信息點(diǎn)在地圖上按照先后順序連接之后,發(fā)回給管理端瀏覽器。根據(jù)管理端瀏覽器頁(yè)面顯示的軌跡可以判斷歷史運(yùn)動(dòng)記錄。
圖4 位置信息的處理存儲(chǔ)Fig.4 Location Information Processing and Storage
圖5 位置信息的提取處理Fig.5 Location Information Extraction and Processing
手機(jī)在安裝好APP之后,可以通過(guò)WiFi建立與服務(wù)器的連接,上傳位置信息,如圖6所示。
圖6 外勤手機(jī)客戶(hù)端APP上傳位置信息Fig.6 Field mobile client APP upload the location information
可以通過(guò)管理端設(shè)備瀏覽器通過(guò)因特網(wǎng)與服務(wù)器連接,顯示定位功能和歷史行動(dòng)軌跡的追查,如圖7所示。
圖7 管理端瀏覽器查詢(xún)歷史軌跡Fig.7 Management browser query history track
本文設(shè)計(jì)了一個(gè)基于安卓手機(jī)的人員實(shí)時(shí)定位與監(jiān)管系統(tǒng)。經(jīng)過(guò)簡(jiǎn)單APP的安裝,并與服務(wù)器連接,可以實(shí)時(shí)上傳手機(jī)所在的位置信息。可從網(wǎng)頁(yè)查看上傳的位置,實(shí)現(xiàn)實(shí)時(shí)定位和對(duì)歷史行動(dòng)軌跡的監(jiān)管。極大地節(jié)約管理上各項(xiàng)成本開(kāi)支,可為智能化云管理,高效化監(jiān)督提供參考。