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