劉細(xì)梅,高光明,牛振國,郭子祺
(1. 中南大學(xué) 地球科學(xué)與信息物理學(xué)院,湖南 長沙 410083;2. 中國科學(xué)院 遙感應(yīng)用研究所,北京 100101)
村鎮(zhèn)環(huán)境監(jiān)測是我國環(huán)境保護(hù)非常重要的內(nèi)容[1,2],及時(shí)、準(zhǔn)確地對環(huán)境污染的各類信息進(jìn)行監(jiān)測和收集,對于環(huán)境治理和社會應(yīng)急決策具有重要的意義。目前, 環(huán)境污染的調(diào)查采用實(shí)地調(diào)查記錄、測試,然后帶回?cái)?shù)據(jù)中心進(jìn)行分析處理和上報(bào)。這種模式一方面不能支持環(huán)境污染信息的實(shí)時(shí)共享,另一方面也往往把污染區(qū)域的地理環(huán)境等背景信息割裂開來,不利于污染源的分析和監(jiān)測[3-9]。當(dāng)前移動技術(shù)的發(fā)展為手機(jī)、PDA 等移動設(shè)備進(jìn)行數(shù)據(jù)采集和實(shí)時(shí)傳輸提供了技術(shù)支持[10]。因此,本文提出集PDA、移動GIS技術(shù)于一體,基于Android操作系統(tǒng)的村鎮(zhèn)環(huán)境污染現(xiàn)場監(jiān)測信息移動收集系統(tǒng)。
本系統(tǒng)總體上設(shè)計(jì)為C/S架構(gòu)。客戶端(智能手機(jī))負(fù)責(zé)前臺界面顯示和信息采集,服務(wù)器負(fù)責(zé)數(shù)據(jù)接收和存儲。為完成系統(tǒng)各功能模塊的開發(fā),首先建立了Android SDK18 + Java JDK 7 + Eclipse 4.2+ArcGIS Server10+ArcGIS API for Android 2.0 的開發(fā)環(huán)境,基于Android 4.0 版本開發(fā)。本系統(tǒng)測試環(huán)境為:服務(wù)器Acer,操作系統(tǒng)Windows XP,數(shù)據(jù)庫系統(tǒng)MS SQL Server 2008??蛻舳瞬捎萌荊T-P3110(Android 4.0系統(tǒng),硬件配置為雙核1 GHz CPU,RAM 1 GB,ROM 8 GB,7 英寸TFT電容式多點(diǎn)觸摸彩色屏幕),WiFi 網(wǎng)絡(luò)。
本系統(tǒng)分為支撐層、數(shù)據(jù)層、服務(wù)層、應(yīng)用層、用戶層5部分,如圖1。
1)支撐層。包括基礎(chǔ)軟硬件環(huán)境,如Android平臺智能手機(jī)、傳感器,相關(guān)標(biāo)準(zhǔn)與規(guī)范體系等。
2)數(shù)據(jù)層。根據(jù)系統(tǒng)需求,建立滿足服務(wù)所需的數(shù)據(jù)體系,核心是基礎(chǔ)地理數(shù)據(jù)庫和應(yīng)用專題屬性數(shù)據(jù)庫,包括有基于MS SQL的數(shù)據(jù)中心、移動端SQLite本地?cái)?shù)據(jù)庫、基于ArcGIS Server緩存發(fā)布的地理信息。
圖1 系統(tǒng)架構(gòu)
3)服務(wù)層。為不同角色用戶提供相應(yīng)采集點(diǎn)數(shù)據(jù)管理、在線使用和二次開發(fā)需求,向應(yīng)用層提供所需的各種應(yīng)用服務(wù),如地圖操作服務(wù)、數(shù)據(jù)管理服務(wù)、數(shù)據(jù)接口服務(wù)等。
4)應(yīng)用層。為用戶提供多種應(yīng)用,包括實(shí)現(xiàn)有關(guān)村鎮(zhèn)環(huán)境污染監(jiān)測點(diǎn)定位污染等信息的采集、傳輸、管理、在線統(tǒng)計(jì)分析以及為第三方軟件或硬件提供數(shù)據(jù)接口等,同時(shí)支持在離線地圖上對監(jiān)測信息的顯示等。
5)用戶層。與村鎮(zhèn)環(huán)境污染監(jiān)測有關(guān)的各類用戶,包括政府、企業(yè)、公眾等。這個(gè)層面需要實(shí)現(xiàn)用戶統(tǒng)一身份認(rèn)證和應(yīng)用系統(tǒng)單點(diǎn)登錄。
客戶端功能主要分為數(shù)據(jù)管理、數(shù)據(jù)查詢、信息查詢、地圖服務(wù)、用戶管理、上傳數(shù)據(jù)、數(shù)據(jù)存儲模式設(shè)置,如圖2。
經(jīng)登錄驗(yàn)證的用戶進(jìn)入系統(tǒng),通過數(shù)據(jù)存儲模式設(shè)置可以指定當(dāng)前采集的數(shù)據(jù)上傳模式。數(shù)據(jù)上傳分為在線實(shí)時(shí)上傳和離線存儲:在線實(shí)時(shí)上傳模式是在采集地點(diǎn)3G信號或WiFi網(wǎng)絡(luò)連接狀態(tài)良好的情況下,將采集的數(shù)據(jù)即時(shí)傳輸并存儲于服務(wù)器端;離線上傳是在采集地點(diǎn)無3G或WiFi信號或中斷的情況下,將采集的數(shù)據(jù)暫時(shí)存儲于本地,待恢復(fù)網(wǎng)絡(luò)后再將數(shù)據(jù)上傳至服務(wù)器端。為此,系統(tǒng)專門設(shè)計(jì)了“上傳數(shù)據(jù)”的功能。
圖2 客戶端功能框架
考慮到數(shù)據(jù)在傳輸過程中的安全,本系統(tǒng)底層通信協(xié)議為TCP的HTTP。結(jié)合J2EE平臺跨操作系統(tǒng)特性,選用Tomcat服務(wù)器,采用JDBC驅(qū)動鏈接數(shù)據(jù)庫。在J2EE平臺上響應(yīng)HTTP Request的是Servlet,一個(gè)Servlet對應(yīng)一個(gè)url。網(wǎng)絡(luò)傳輸中數(shù)據(jù)采用JSON格式,易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,對計(jì)算和帶寬的占用居中[11,12]。
服務(wù)器端負(fù)責(zé)處理與移動客戶端的鏈接,將移動客戶端上傳的變更數(shù)據(jù)上傳至中心數(shù)據(jù)庫,也負(fù)責(zé)把中心數(shù)據(jù)庫的最新數(shù)據(jù)傳輸給移動客戶端本地?cái)?shù)據(jù)庫中,同時(shí)為第三方軟件或硬件提供采集點(diǎn)信息的Web Service技術(shù)接口。
采集點(diǎn)數(shù)據(jù)主要是空間信息、污染物信息、采集人員信息、采集時(shí)間、圖片、視頻等信息。利用智能手機(jī)的GPS功能自動獲取空間信息,然后與其他相關(guān)信息一起采集并提交至服務(wù)器端。采集流程如圖3,用戶界面見圖4。
圖3 污染信息采集流程圖
圖4 采集點(diǎn)信息采集界面
1)定位信息獲取。首先通過getSystemService()來獲取GPS 服務(wù),然后注冊一個(gè)位置更新的事件監(jiān)聽器,再調(diào)用其位置更新服務(wù)的方法requestLocationUpdates()獲取實(shí)時(shí)的衛(wèi)星數(shù)據(jù)。在該方法中有一個(gè)事件監(jiān)聽器LocationListener 參數(shù),其中有一個(gè)Location 類,存放實(shí)時(shí)獲取的衛(wèi)星數(shù)據(jù),通過調(diào)用這個(gè)類的有關(guān)方法便可得到當(dāng)前的經(jīng)緯度、海拔等信息[13-15]。
2)圖片視頻采集。用戶可選擇“從視頻庫中選擇照片”或“錄像”。如果選擇“錄像”,系統(tǒng)會自動調(diào)用智能手機(jī)的錄像功能,利用Intent的putExtra方法來完成錄像,并將視頻自動保存在SD卡指定目錄下。圖片采集過程與視頻采集類似。
采集點(diǎn)數(shù)據(jù)信息的查詢可根據(jù)地區(qū)編碼、采集人、采集時(shí)間條件組合來進(jìn)行查詢,查詢結(jié)果通過ListView顯示。本系統(tǒng)實(shí)現(xiàn)的ListView表格中,每個(gè)格單元可以大小不一,文本或圖片做單元格的數(shù)據(jù),不需預(yù)先定義XML實(shí)現(xiàn)樣式,有利于代碼的重復(fù)利用。其中ListView中自適應(yīng)實(shí)現(xiàn)table類,具體實(shí)現(xiàn)由TableCell->TableRow->ListView。
對于查詢結(jié)果中的圖片與視頻可以通過點(diǎn)擊單元格進(jìn)行查詢或播放。其重點(diǎn)是在ListView點(diǎn)擊響應(yīng)事件setOnItemClickListener中通過方法getChildAt獲取相應(yīng)的單元格數(shù)據(jù),以對話框形式顯示圖片或播放視頻[16]。
1)顯示地圖。本系統(tǒng)中使用的是經(jīng)ArcGIS Server動態(tài)緩存發(fā)布并存放于智能手機(jī)外置卡指定目錄中的地圖數(shù)據(jù),在ArcGIS提供的MapView控件中添加ArcGISLocalTiledLayer即可顯示地圖。
2)顯示當(dāng)前采集點(diǎn)。在設(shè)置地圖狀態(tài)改變監(jiān)聽事件setOnStatusChan-gedListener中,新建GraphicsLayer與Point,利用 GeometryEngine類的project方法將點(diǎn)坐標(biāo)投影到地圖上,并新建Graphic對點(diǎn)進(jìn)行渲染,最后將Graphic添加到GraphicsLayer中,即可以將采集點(diǎn)顯示在地圖上[17]。
3)預(yù)警。移動端用戶可以根據(jù)需要組合條件查詢服務(wù)器端采集點(diǎn)數(shù)據(jù)并簡單地統(tǒng)計(jì)分析污染程度,并通過地圖直觀展示。
為測試該系統(tǒng)的采集、上傳與分析等功能,進(jìn)行了初步測試應(yīng)用。野外測試采集過程中采用離線存儲模式,將數(shù)據(jù)臨時(shí)存儲于Sqlite本地?cái)?shù)據(jù)庫,并實(shí)時(shí)查看采集人員在地圖上的位置顯示;待回到室內(nèi)恢復(fù)WiFi網(wǎng)絡(luò)信號后,啟用“上傳數(shù)據(jù)”功能,將存儲于本地的污染信息上傳至服務(wù)器端,同時(shí)清除已經(jīng)上傳成功的臨時(shí)數(shù)據(jù),并查詢服務(wù)器端數(shù)據(jù)。
測試結(jié)果驗(yàn)證了利用基于Android操作系統(tǒng)、集GPS、GIS于一體的智能手機(jī)采集村鎮(zhèn)環(huán)境污染信息并上傳到服務(wù)器的可行性, 實(shí)現(xiàn)了手機(jī)客戶端與服務(wù)器端之間的交互。該系統(tǒng)操作簡便,能夠快速地進(jìn)行野外污染源數(shù)據(jù)的獲取與傳輸,提高了污染源數(shù)據(jù)的采集效率。
[1]馮欣,師曉春.農(nóng)村水環(huán)境污染現(xiàn)狀及治理對策[J].環(huán)境保護(hù)與循環(huán)經(jīng)濟(jì),2011(5):40-42
[2]張笑歸,劉樹慶,寧國輝,等.我國農(nóng)村環(huán)境污染現(xiàn)狀及其對策研究[J].河北農(nóng)業(yè)科學(xué),2009(13):100-102
[3]王華.土地利用變更的土壤及地下水污染調(diào)查方法及實(shí)例[J].環(huán)境污染與防治,2005,27(3):221-224
[4]金春久,李環(huán),蔡宇.松花江流域面源污染調(diào)查方法初探[J].東北水利水電,2004(6):54-55
[5]劉景濤,孫繼朝,黃冠星,等.區(qū)域地下水污染調(diào)查評價(jià)野外調(diào)查方法淺議[J].地下水,2008,30(2):60-61
[6]文冬光,林良俊,孫繼朝,等.區(qū)域性地下水有機(jī)污染調(diào)查與評價(jià)方法[J].中國地質(zhì),2008,35(5):814-819
[7]張照錄,崔繼紅,張錄強(qiáng),等.農(nóng)村生活污染特點(diǎn)與快速調(diào)查方法[J].安徽農(nóng)業(yè)科學(xué),2011,39(22):13 656-13 657
[8]劉雪松,蔡五田,李勝濤,等.石油類污染場地土壤與地下水污染調(diào)查實(shí)例分析[J].水文地質(zhì)工程地質(zhì),2010,37(4):121-125
[9]龔海明,馬瑞峻,汪昭軍,等.農(nóng)田土壤重金屬污染監(jiān)測技術(shù)發(fā)展趨勢[J].中國農(nóng)學(xué)通報(bào),2013,29(2):140-147
[10]吳考琴,齊華,朱軍.Java手機(jī)在污染源數(shù)據(jù)采集中的應(yīng)用研究[J].微計(jì)算機(jī)信息,2010,26(5):93-95
[11]邵珠光,趙秋生,景治偉,等.Android平臺下居民信息錄入系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].國際生物醫(yī)學(xué)工程雜志,2012,35(1):46-49
[12]黃東.基于SQLite的移動嵌入式數(shù)據(jù)庫同步系統(tǒng)的研究和開發(fā)[D].武漢:華中師范大學(xué),2009
[13]胡剛林.G/S數(shù)字旅游移動服務(wù)模式研究與應(yīng)用[D].成都:成都理工大學(xué),2010
[14]李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2011
[15]郭宏志.Android應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010
[16]賈文杰,孫志鋒.基于Android平臺的智能導(dǎo)游系統(tǒng)[J].機(jī)電工程,2011,28(10):1 257-1 259
[17]周靖雄,陳友飛.基于ArcGIS Android API的GPS手機(jī)導(dǎo)航系統(tǒng)關(guān)鍵技術(shù)的研究與實(shí)現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2012(4):45-46