鄭州輕工業學院計算機與通信工程學院 鄒東堯 劉 寬 李娜娜
隨著智能手機的進一步普及和移動互聯網的飛速發展,基于手機上的應用越來越深入人們的生產和生活[1]。本文研究主要基于安卓手機對GPS和WiFi的支持[2],設計和實現外勤人員實時定位與歷史行動軌跡追查監管系統[3]。該系統可用于各個企業或者單位當前面臨的外勤智能化高效管理,比如針對某高端小區物業保潔、保安等外勤人員,盡管在其工作場所都有視頻監控設備,但是并不能做到無死角的追蹤與監督。如果能做到遠程實時監控和歷史行動軌跡的追查[4],則可以對在工作時間內消極怠工或其他情況起到一個高效的監督作用。而采用該系統只需要外勤人員手機上安裝一個APP,然后接入WiFi網絡,管理人員就可以在遠端對所有外勤人員進行實時準確定位和歷史軌跡追查,大幅度降低用于管理平臺運營維護的人力、時間和財務[5]等成本。
本系統框圖如圖1所示,整個系統框架包括4個部分,分別是管理客戶端、外勤手機客戶端、服務器端、通信網絡。其中,管理客戶端用于系統管理者對于外勤人員進行監控管理,它可以利用手機終端或者PC機,通過有線或者無線接入因特網,打開瀏覽器訪問服務器。外勤手機客戶端采用安卓系統,安裝APP,接收GPS定位信息,通過WiFi網絡將定位信息發送給服務器端處理。服務器端接收外勤手機客戶端定位信息進行本地顯示與存儲,同時它還能接受并處理管理客戶端的訪問請求。通信網絡不僅包括管理客戶端與服務器端之間的有線局域網、WiFi、GPRS、Internet網絡,而且包括服務器端與外勤客戶端之間的WiFi網絡,還包括外勤客戶端與GPS衛星之間的通信網絡。
系統運行時,外勤手機客戶端會以一定頻率周期性采集手機GPS位置信息,并將定位信息通過WiFi上傳給服務器端。服務器端接收信息后,將信息處理顯示并儲存在數據庫中。管理手機客戶端或者管理PC機客戶端通過瀏覽器查看信息可以采用以下兩種方式,第一種可以查看實時定位信息,此時系統將最近一次外勤手機客戶端上傳的位置點顯示在百度地圖上,以確定當前外勤手機持有者的準確位置。第二種方式則是可以查看歷史軌跡回放,此時系統將之前外勤手機客戶端上傳的歷史位置信息從服務器的數據庫中提取并處理,在百度地圖上將這些位置點按照時間先后順序連接起來形成歷史行動軌跡圖。
外勤手機客戶端應用程序基于安卓手機,程序代碼使用Java語言,APP的編譯全部在Eclipse平臺上完成。在功能上負責采集定位信息并將信息上傳給服務器,位置信息采集交互如圖2所示。

圖2 位置信息采集交互Fig.2 position information collection interaction
外勤手機客戶端APP包括定位信息采集模塊和定位信息上傳模塊,其中,定位信息的采集模塊利用百度地圖的BaiDuMap API(應用接口)[6]實現,定位信息的上傳模塊使用Socket與服務器進行信息交互,將信息發送給服務器,信息的采集和上傳是有著固定頻率的。在利用BaiDuMap API獲取GPS位置信息時不僅需要把手機的GPS開關設置為打開,還需要在APP工程中導入相對應的Jar包,這樣才可以使用已經封裝好的get方法,對數據包進行解析。
如外勤手機客戶端獲取不到GPS信號時,APP會認為手機沒有打開GPS開關,會直接跳出提示開關。手機會以一定的頻率來周期性來對位置信息的采集和上傳,當APP通過手機獲取到GPS位置信息后,會將GPS位置信息解析為json格式的數據包,以作發送準備。再之后APP會通過WiFi建立與服務器的Socket連接[7],手機會將json格式的位置信息發送給服務器,并等待服務器的ACK回應,如未收到ACK回應,顯示發送失敗,收到則顯示發送成功。之后會判斷定時器是否超時,超時將會繼續進行下一次的位置信息采集與上傳。APP程序設計流程圖如圖3所示。

圖1 系統框圖Fig.1 System Block Diagram
系統程序的代碼使用Java語言,設計MVC三層結構[8],該框架結構可以將網頁與數據庫之間的程序分為三層:分別是視圖層,控制器層和模型層。提高代碼的可重用性。并且模塊之間相互獨立,提高了應用程序的可配置性,有利于軟件工程化化管理[9]。服務器分為兩大模塊,第一個模塊是接收存儲位置信息,服務器會接收外勤手機發送的json格式數據包,并會將數據包解析成詳細的經緯度信息,存儲在數據庫中,位置信息的處理存儲過程如圖4所示。第二個模塊是提取處理模塊,在管理端瀏覽器需要訪問信息時,服務器會從數據庫中將信息提取出來,并在對信息進行處理之后,確定位置點,將位置點定位在頁面上,使用MyLocationOverly方法[7]把百度地圖覆蓋在位置點上,對頁面空白進行填充。這時在瀏覽器頁面上可以看到位置的顯示,位置信息的提取處理過程如圖5所示。

圖3 APP程序設計流程圖Fig.3 APP program design flow chart
在提取處理模塊中,實現的是系統的兩個功能,第一個是實時定位功能。管理端瀏覽器頁面上向服務器發送請求,服務器會返回最新一次上傳的位置點。第二個功能是歷史運動軌跡的監管功能。管理端瀏覽器向服務器發出請求,則服務器提取一段時間內的位置點,使這些信息點在地圖上按照先后順序連接之后,發回給管理端瀏覽器。根據管理端瀏覽器頁面顯示的軌跡可以判斷歷史運動記錄。

圖4 位置信息的處理存儲Fig.4 Location Information Processing and Storage

圖5 位置信息的提取處理Fig.5 Location Information Extraction and Processing
手機在安裝好APP之后,可以通過WiFi建立與服務器的連接,上傳位置信息,如圖6所示。

圖6 外勤手機客戶端APP上傳位置信息Fig.6 Field mobile client APP upload the location information
可以通過管理端設備瀏覽器通過因特網與服務器連接,顯示定位功能和歷史行動軌跡的追查,如圖7所示。

圖7 管理端瀏覽器查詢歷史軌跡Fig.7 Management browser query history track
本文設計了一個基于安卓手機的人員實時定位與監管系統。經過簡單APP的安裝,并與服務器連接,可以實時上傳手機所在的位置信息。可從網頁查看上傳的位置,實現實時定位和對歷史行動軌跡的監管。極大地節約管理上各項成本開支,可為智能化云管理,高效化監督提供參考。