曹昕燕,王強,2
(1.長春大學 電子信息工程學院,長春 130022; 2.科大訊飛股份有限公司 大數據部門,合肥 002230)
隨著城市發展進程的加快,交通擁堵問題已經嚴重影響到了居民的出行,解決交通擁堵問題迫在眉睫。而解決交通擁堵問題的關鍵技術就是交通信息的采集。大數據和“互聯網+”已成為了時代發展的前沿,手機移動端成為信息交互的重要手段。手機定位技術也得到了迅速發展,基于GPS定位和基于移動運營網的定位技術成為手機定位技術的主流。利用Android平臺開發采集空間信息,能夠更加方便快捷地采集手機用戶的交通信息數據,隨著交通信息的增多,對交通空間信息的研究顯得尤為重要[1]。
本文在闡述手機定位技術的基礎上,開發了基于Android平臺的一種對交通信息進行采集系統(包括經度、緯度、時間、所在位置),并通過對采集的用戶交通數據進行處理,最后將所處理的數據錄入到ArcGIS進行可視化表達并作出推理性研究。
手機定位技術通過特定的定位技術來獲取移動手機或終端用戶的位置信息,在電子地圖上標出被定位對象的技術或服務。定位技術有兩種,一種是基于GPS的定位;一種是基于移動運營商的定位[2]。基于GPS的定位方式是利用手機上的GPS定位模塊將自己的位置信號發送到定位后臺來實現手機定位的;基站定位則是利用基站對于手機的測算距離來確定手機位置的[3]。后者不需要手機具有GPS定位能力,但是精度很大程度上依賴于基站的分布及覆蓋范圍的大小,誤差會超過一公里。前者定位精度較高。此外還有利用Wifi進行小范圍內定位的定位方式[4]。
Android的系統架構和其他操作系統一樣,采用分層的架構,從架構圖看,Android由應用程序層、應用程序架構層、系統運行庫層和Linux內核層[5]組成。
Android的整個操作系統都基于Linux內核層,在Linux內核之上是系統運行層,在這里面有很多程序包都是用c或者c++編寫。在系統運行層還有一個java運行環境,在這里面有一些核心包。Android用的類庫IO,activity等就在這里面,這里面還有一個虛擬機能夠很好地模擬手機狀態[6]。在這層之上就是應用程序框架層,這是手機開發非常重要的一層,提供手機開發的最基本的API。最頂層是應用程序層,應用程序就是在這一層進行開發,它們之間的關系是:應用程序層調用應用程序框架層,應用程序框架層是用java編寫,因此需要調用系統運行層以及需要在基于Android運行環境進行運行,最后要交給Linux底層進行硬件交互運行[7]。
在Android開發環境的過程中,需要四個部分ADT、Eclipse、Java SDK、Android SDK、Android 開發環境搭建流程,如圖1所示。

圖1 Android開發環境搭建流程圖
2.3.1 系統功能
本文旨在提取用戶的位置信息,在事先征得用戶應允的前提下對用戶位置信息進行提取,所以并不會存在隱私問題。本設計預達到的功能是獲取用戶的位置信息,通過手機App采集數據,提取用戶的經度緯度坐標、時間、地點、街道,并將所得數據上傳至服務器進行存儲。
2.3.2 軟件設計
Android平臺主要采集的是用戶的經度緯度、時間、地點、街道等數據,Android平臺開發的App是通過Java語言來調用手機本身的定位模塊從而達到定位目的的,當然也要結合當前百度地圖SDK顯示當前位置。軟件設計如圖2所示。

圖2 軟件設計流程圖
啟動手機Android應用,判斷手機的GPS和無線網絡是否打開,如果沒有打開將會出現閃退,開啟上傳服務,并在后臺運行服務,調用百度地圖API以及手機定位硬件獲取實時位置。如果獲取數據失敗則舍棄,重新定位,成功進行下一步。獲取成功后,檢測手機網絡狀況。若手機網絡良好,獲取本機Mac地址、IP、設備號、連同定位經緯度數據、地址、時間、街道等數據一并上傳至服務器;如果網絡不好則舍棄,等待網絡重新進行定位,服務器返回成功狀態碼,本次數據采集結束。采集頻率為5分鐘一次。
2.3.3 功能模塊設計
系統主要用于設計采集用戶的經緯度坐標、地點、街道、時間,然后再上傳到服務器,主要由8模塊組成:activity模塊、網絡模塊、采集時間范圍模塊、遠程服務器訪問模塊、定位信息環境模塊、廣播模塊、百度API模塊、App應用創建模塊。
activity模塊:整個應用程序的界面,負責填加按鈕、填加文本、文本框、增加圖片、改變長寬等等。
網絡模塊:主要來判別用戶有沒有打開GPS和無線服務。如果沒打開的話,將不會運行,在GPS和無線服務都打開的情況下,每5分鐘采集一次定位數據,給遠程服務器模塊進行處理代碼。
對采集時間進行限定作用:因為本次采集數據時間點不會采集那么大量,所以在時間上進行了限定,上午7點到9點左右、中午11點到14點左右、下午16點到19點左右,選擇用戶上下班時間。
遠程服務器訪問作用:對定位成功的數據上傳到服務器。
運行環境信息:將手機基本信息進行上傳,包括手機系統、手機版本、手機IMEI號、手機網絡的MAC地址等等。
廣播模塊的作用:主要起到activity到service的橋梁作用。
百度地圖模塊的作用:通過手機本身定位硬件模塊,再通過調入API在百度地圖上進行顯示。這一塊將在下一節進行詳細介紹。
Application的作用:保護App應用軟件能夠運行。
隨著交通信息的增多,對交通信息的研究顯得尤為重要。美國環境系統研究所(簡稱ERSI)開發出了新一代GIS產品,將采集的數據錄入到ArcMap中,ArcMap提供強大的坐標存儲功能,本次設計采用的是WGSI1984坐標,WGS1984還是一種投影坐標系名稱,它可以顯示地球上任意一點的位置,如圖3、圖4所示。

圖3 ArcMap的長春地圖

圖4 ArcMap圖層

圖5 App界面
本設計測試在長春市市區進行,選取時間為上、下班時間,選取若干個用戶為實驗對象,為了保護個人隱私,所以對用戶進行匿名處理。首先,打開手機,開啟APP開始進行數據采集。App界面如圖5所示。采集的數據上傳至服務器,將采集的數據存儲到Excel中,如表1所示。
表1采集數據

本次實驗研究的分別是長春市的人民大街、自由大路、衛星廣場、衛星路、工農廣場等比較擁堵的路段,將采集的數據錄入到ArcMap中,如圖6所示。

圖6 ArcMap錄入數據界面
利用手機定位數據,提取個體、區域及通道交通出行特征參數并進行時空分布分析是研究重點。對用戶定位數據進行了采集,對重點區域進行了可視化表達,為長春交通問題的解決提出了全新的方案。同時,基于手機定位信息的交通出行及狀態分析,為交通規劃、交通管理提供基礎數據及技術支持。
[1] 茍錫榮,左小清,張用川. 基于GPS浮動車的數字速度模型在城市交通狀態演變分析中的應用:以昆明市為例[J]. 科學技術與工程,2013(11):3172-3177.
[2] 張燕兵. Android手機定位與地圖設計與實現[D].長春:吉林大學,2013.
[3] 吳擒龍. GPS軌跡提取云服務平臺[D].長春:東北師范大學,2014.
[4] 竇麗莎,曹凱. 出行者子停留語義推斷模型框架[J]. 山東理工大學學報(自然科學版),2012(6):17-22.
[5] 歐陽鴻,劉建勛,劉毅志,等. 基于步行GPS軌跡的路網提取方法[J]. 計算機與現代化,2014(2):124-128.
[6] 王力軍,何友全.一種以空間換時間的快速查找算法的設計與應用[J]. 重慶科技學院學報(自然科學版),2009(3): 132-134.
[7] 馬占剛. 基于手機的交通信息采集及處理技術[D].重慶:重慶交通大學,2009.