曹昕燕,王強(qiáng),2
(1.長(zhǎng)春大學(xué) 電子信息工程學(xué)院,長(zhǎng)春 130022; 2.科大訊飛股份有限公司 大數(shù)據(jù)部門,合肥 002230)
隨著城市發(fā)展進(jìn)程的加快,交通擁堵問(wèn)題已經(jīng)嚴(yán)重影響到了居民的出行,解決交通擁堵問(wèn)題迫在眉睫。而解決交通擁堵問(wèn)題的關(guān)鍵技術(shù)就是交通信息的采集。大數(shù)據(jù)和“互聯(lián)網(wǎng)+”已成為了時(shí)代發(fā)展的前沿,手機(jī)移動(dòng)端成為信息交互的重要手段。手機(jī)定位技術(shù)也得到了迅速發(fā)展,基于GPS定位和基于移動(dòng)運(yùn)營(yíng)網(wǎng)的定位技術(shù)成為手機(jī)定位技術(shù)的主流。利用Android平臺(tái)開(kāi)發(fā)采集空間信息,能夠更加方便快捷地采集手機(jī)用戶的交通信息數(shù)據(jù),隨著交通信息的增多,對(duì)交通空間信息的研究顯得尤為重要[1]。
本文在闡述手機(jī)定位技術(shù)的基礎(chǔ)上,開(kāi)發(fā)了基于Android平臺(tái)的一種對(duì)交通信息進(jìn)行采集系統(tǒng)(包括經(jīng)度、緯度、時(shí)間、所在位置),并通過(guò)對(duì)采集的用戶交通數(shù)據(jù)進(jìn)行處理,最后將所處理的數(shù)據(jù)錄入到ArcGIS進(jìn)行可視化表達(dá)并作出推理性研究。
手機(jī)定位技術(shù)通過(guò)特定的定位技術(shù)來(lái)獲取移動(dòng)手機(jī)或終端用戶的位置信息,在電子地圖上標(biāo)出被定位對(duì)象的技術(shù)或服務(wù)。定位技術(shù)有兩種,一種是基于GPS的定位;一種是基于移動(dòng)運(yùn)營(yíng)商的定位[2]?;贕PS的定位方式是利用手機(jī)上的GPS定位模塊將自己的位置信號(hào)發(fā)送到定位后臺(tái)來(lái)實(shí)現(xiàn)手機(jī)定位的;基站定位則是利用基站對(duì)于手機(jī)的測(cè)算距離來(lái)確定手機(jī)位置的[3]。后者不需要手機(jī)具有GPS定位能力,但是精度很大程度上依賴于基站的分布及覆蓋范圍的大小,誤差會(huì)超過(guò)一公里。前者定位精度較高。此外還有利用Wifi進(jìn)行小范圍內(nèi)定位的定位方式[4]。
Android的系統(tǒng)架構(gòu)和其他操作系統(tǒng)一樣,采用分層的架構(gòu),從架構(gòu)圖看,Android由應(yīng)用程序?qū)?、?yīng)用程序架構(gòu)層、系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層[5]組成。
Android的整個(gè)操作系統(tǒng)都基于Linux內(nèi)核層,在Linux內(nèi)核之上是系統(tǒng)運(yùn)行層,在這里面有很多程序包都是用c或者c++編寫。在系統(tǒng)運(yùn)行層還有一個(gè)java運(yùn)行環(huán)境,在這里面有一些核心包。Android用的類庫(kù)IO,activity等就在這里面,這里面還有一個(gè)虛擬機(jī)能夠很好地模擬手機(jī)狀態(tài)[6]。在這層之上就是應(yīng)用程序框架層,這是手機(jī)開(kāi)發(fā)非常重要的一層,提供手機(jī)開(kāi)發(fā)的最基本的API。最頂層是應(yīng)用程序?qū)?,?yīng)用程序就是在這一層進(jìn)行開(kāi)發(fā),它們之間的關(guān)系是:應(yīng)用程序?qū)诱{(diào)用應(yīng)用程序框架層,應(yīng)用程序框架層是用java編寫,因此需要調(diào)用系統(tǒng)運(yùn)行層以及需要在基于Android運(yùn)行環(huán)境進(jìn)行運(yùn)行,最后要交給Linux底層進(jìn)行硬件交互運(yùn)行[7]。
在Android開(kāi)發(fā)環(huán)境的過(guò)程中,需要四個(gè)部分ADT、Eclipse、Java SDK、Android SDK、Android 開(kāi)發(fā)環(huán)境搭建流程,如圖1所示。
圖1 Android開(kāi)發(fā)環(huán)境搭建流程圖
2.3.1 系統(tǒng)功能
本文旨在提取用戶的位置信息,在事先征得用戶應(yīng)允的前提下對(duì)用戶位置信息進(jìn)行提取,所以并不會(huì)存在隱私問(wèn)題。本設(shè)計(jì)預(yù)達(dá)到的功能是獲取用戶的位置信息,通過(guò)手機(jī)App采集數(shù)據(jù),提取用戶的經(jīng)度緯度坐標(biāo)、時(shí)間、地點(diǎn)、街道,并將所得數(shù)據(jù)上傳至服務(wù)器進(jìn)行存儲(chǔ)。
2.3.2 軟件設(shè)計(jì)
Android平臺(tái)主要采集的是用戶的經(jīng)度緯度、時(shí)間、地點(diǎn)、街道等數(shù)據(jù),Android平臺(tái)開(kāi)發(fā)的App是通過(guò)Java語(yǔ)言來(lái)調(diào)用手機(jī)本身的定位模塊從而達(dá)到定位目的的,當(dāng)然也要結(jié)合當(dāng)前百度地圖SDK顯示當(dāng)前位置。軟件設(shè)計(jì)如圖2所示。
圖2 軟件設(shè)計(jì)流程圖
啟動(dòng)手機(jī)Android應(yīng)用,判斷手機(jī)的GPS和無(wú)線網(wǎng)絡(luò)是否打開(kāi),如果沒(méi)有打開(kāi)將會(huì)出現(xiàn)閃退,開(kāi)啟上傳服務(wù),并在后臺(tái)運(yùn)行服務(wù),調(diào)用百度地圖API以及手機(jī)定位硬件獲取實(shí)時(shí)位置。如果獲取數(shù)據(jù)失敗則舍棄,重新定位,成功進(jìn)行下一步。獲取成功后,檢測(cè)手機(jī)網(wǎng)絡(luò)狀況。若手機(jī)網(wǎng)絡(luò)良好,獲取本機(jī)Mac地址、IP、設(shè)備號(hào)、連同定位經(jīng)緯度數(shù)據(jù)、地址、時(shí)間、街道等數(shù)據(jù)一并上傳至服務(wù)器;如果網(wǎng)絡(luò)不好則舍棄,等待網(wǎng)絡(luò)重新進(jìn)行定位,服務(wù)器返回成功狀態(tài)碼,本次數(shù)據(jù)采集結(jié)束。采集頻率為5分鐘一次。
2.3.3 功能模塊設(shè)計(jì)
系統(tǒng)主要用于設(shè)計(jì)采集用戶的經(jīng)緯度坐標(biāo)、地點(diǎn)、街道、時(shí)間,然后再上傳到服務(wù)器,主要由8模塊組成:activity模塊、網(wǎng)絡(luò)模塊、采集時(shí)間范圍模塊、遠(yuǎn)程服務(wù)器訪問(wèn)模塊、定位信息環(huán)境模塊、廣播模塊、百度API模塊、App應(yīng)用創(chuàng)建模塊。
activity模塊:整個(gè)應(yīng)用程序的界面,負(fù)責(zé)填加按鈕、填加文本、文本框、增加圖片、改變長(zhǎng)寬等等。
網(wǎng)絡(luò)模塊:主要來(lái)判別用戶有沒(méi)有打開(kāi)GPS和無(wú)線服務(wù)。如果沒(méi)打開(kāi)的話,將不會(huì)運(yùn)行,在GPS和無(wú)線服務(wù)都打開(kāi)的情況下,每5分鐘采集一次定位數(shù)據(jù),給遠(yuǎn)程服務(wù)器模塊進(jìn)行處理代碼。
對(duì)采集時(shí)間進(jìn)行限定作用:因?yàn)楸敬尾杉瘮?shù)據(jù)時(shí)間點(diǎn)不會(huì)采集那么大量,所以在時(shí)間上進(jìn)行了限定,上午7點(diǎn)到9點(diǎn)左右、中午11點(diǎn)到14點(diǎn)左右、下午16點(diǎn)到19點(diǎn)左右,選擇用戶上下班時(shí)間。
遠(yuǎn)程服務(wù)器訪問(wèn)作用:對(duì)定位成功的數(shù)據(jù)上傳到服務(wù)器。
運(yùn)行環(huán)境信息:將手機(jī)基本信息進(jìn)行上傳,包括手機(jī)系統(tǒng)、手機(jī)版本、手機(jī)IMEI號(hào)、手機(jī)網(wǎng)絡(luò)的MAC地址等等。
廣播模塊的作用:主要起到activity到service的橋梁作用。
百度地圖模塊的作用:通過(guò)手機(jī)本身定位硬件模塊,再通過(guò)調(diào)入API在百度地圖上進(jìn)行顯示。這一塊將在下一節(jié)進(jìn)行詳細(xì)介紹。
Application的作用:保護(hù)App應(yīng)用軟件能夠運(yùn)行。
隨著交通信息的增多,對(duì)交通信息的研究顯得尤為重要。美國(guó)環(huán)境系統(tǒng)研究所(簡(jiǎn)稱ERSI)開(kāi)發(fā)出了新一代GIS產(chǎn)品,將采集的數(shù)據(jù)錄入到ArcMap中,ArcMap提供強(qiáng)大的坐標(biāo)存儲(chǔ)功能,本次設(shè)計(jì)采用的是WGSI1984坐標(biāo),WGS1984還是一種投影坐標(biāo)系名稱,它可以顯示地球上任意一點(diǎn)的位置,如圖3、圖4所示。
圖3 ArcMap的長(zhǎng)春地圖
圖4 ArcMap圖層
圖5 App界面
本設(shè)計(jì)測(cè)試在長(zhǎng)春市市區(qū)進(jìn)行,選取時(shí)間為上、下班時(shí)間,選取若干個(gè)用戶為實(shí)驗(yàn)對(duì)象,為了保護(hù)個(gè)人隱私,所以對(duì)用戶進(jìn)行匿名處理。首先,打開(kāi)手機(jī),開(kāi)啟APP開(kāi)始進(jìn)行數(shù)據(jù)采集。App界面如圖5所示。采集的數(shù)據(jù)上傳至服務(wù)器,將采集的數(shù)據(jù)存儲(chǔ)到Excel中,如表1所示。
表1采集數(shù)據(jù)
本次實(shí)驗(yàn)研究的分別是長(zhǎng)春市的人民大街、自由大路、衛(wèi)星廣場(chǎng)、衛(wèi)星路、工農(nóng)廣場(chǎng)等比較擁堵的路段,將采集的數(shù)據(jù)錄入到ArcMap中,如圖6所示。
圖6 ArcMap錄入數(shù)據(jù)界面
利用手機(jī)定位數(shù)據(jù),提取個(gè)體、區(qū)域及通道交通出行特征參數(shù)并進(jìn)行時(shí)空分布分析是研究重點(diǎn)。對(duì)用戶定位數(shù)據(jù)進(jìn)行了采集,對(duì)重點(diǎn)區(qū)域進(jìn)行了可視化表達(dá),為長(zhǎng)春交通問(wèn)題的解決提出了全新的方案。同時(shí),基于手機(jī)定位信息的交通出行及狀態(tài)分析,為交通規(guī)劃、交通管理提供基礎(chǔ)數(shù)據(jù)及技術(shù)支持。
[1] 茍錫榮,左小清,張用川. 基于GPS浮動(dòng)車的數(shù)字速度模型在城市交通狀態(tài)演變分析中的應(yīng)用:以昆明市為例[J]. 科學(xué)技術(shù)與工程,2013(11):3172-3177.
[2] 張燕兵. Android手機(jī)定位與地圖設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),2013.
[3] 吳擒龍. GPS軌跡提取云服務(wù)平臺(tái)[D].長(zhǎng)春:東北師范大學(xué),2014.
[4] 竇麗莎,曹凱. 出行者子停留語(yǔ)義推斷模型框架[J]. 山東理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2012(6):17-22.
[5] 歐陽(yáng)鴻,劉建勛,劉毅志,等. 基于步行GPS軌跡的路網(wǎng)提取方法[J]. 計(jì)算機(jī)與現(xiàn)代化,2014(2):124-128.
[6] 王力軍,何友全.一種以空間換時(shí)間的快速查找算法的設(shè)計(jì)與應(yīng)用[J]. 重慶科技學(xué)院學(xué)報(bào)(自然科學(xué)版),2009(3): 132-134.
[7] 馬占剛. 基于手機(jī)的交通信息采集及處理技術(shù)[D].重慶:重慶交通大學(xué),2009.