學(xué) 峰,蘇日亞,阿那爾,安 全,格 根
(內(nèi)蒙古自治區(qū)地震局,內(nèi)蒙古 呼和浩特 010010)
基于Android平臺(tái)的地震災(zāi)害信息采集系統(tǒng)應(yīng)用
學(xué) 峰,蘇日亞,阿那爾,安 全,格 根
(內(nèi)蒙古自治區(qū)地震局,內(nèi)蒙古 呼和浩特 010010)
為快速獲取地震現(xiàn)場信息,本文提出了一種基于Android平臺(tái)的災(zāi)害信息采集系統(tǒng)。文中結(jié)合Android開源平臺(tái)及云計(jì)算技術(shù)特點(diǎn),探討了基于Android平臺(tái)地震現(xiàn)場災(zāi)害信息采集系統(tǒng)的開發(fā)設(shè)計(jì)思路,并詳細(xì)介紹了該系統(tǒng)的總體框架與設(shè)計(jì)方法,重點(diǎn)分析了主要模塊的實(shí)現(xiàn)方法、數(shù)據(jù)存儲(chǔ)與上傳方式、現(xiàn)場信息獲取等三個(gè)方面的技術(shù)難點(diǎn)。通過初步應(yīng)用的情況來看,該系統(tǒng)的特點(diǎn)及優(yōu)勢(shì)較為明顯。
Android;地震災(zāi)害;SQLite數(shù)據(jù)庫;Http-Post方式
地震現(xiàn)場科學(xué)考察和災(zāi)害損失評(píng)估是防震減災(zāi)工作中的一項(xiàng)重要工作,并且獲得最新地震災(zāi)害損失信息,為地震應(yīng)急救援提供可靠依據(jù)。由于地震災(zāi)害信息采集有著及時(shí)性、準(zhǔn)確性等特點(diǎn),所以傳統(tǒng)的信息采集方式不能滿足需求,還存在諸多問題,如:信息量為較大、效率難以提升、方式單一、未能實(shí)現(xiàn)網(wǎng)絡(luò)化采集。本文根據(jù)地震災(zāi)害損失信息采集的需求,結(jié)合Android開源平臺(tái)和云計(jì)算技術(shù)的特點(diǎn),探討地震災(zāi)害信息采集系統(tǒng)的設(shè)計(jì)及有關(guān)實(shí)現(xiàn)方法。
目前Java是Android平臺(tái)的主流開發(fā)環(huán)境,但考慮軟件移植性,本系統(tǒng)開發(fā)選擇了MonoDroid 開發(fā)環(huán)境。環(huán)境搭建首先安裝JDK軟件包,然后安裝Android SDK and AVD Manager;安裝好了運(yùn)行Android SDK (Software Development Kit)and AVD Manager(Android Virtual Device)選擇“Virtual Devices”進(jìn)行模擬器配置;再安裝Mono for Android插件。該系統(tǒng)開發(fā)是基于此環(huán)境上開發(fā)和調(diào)試,并最終在Android移動(dòng)終端上通過測(cè)試和應(yīng)用。
地震災(zāi)害信息采集系統(tǒng)設(shè)計(jì)于一套標(biāo)準(zhǔn)的三層架構(gòu),該系統(tǒng)的結(jié)構(gòu)由客戶端、應(yīng)用服務(wù)端及數(shù)據(jù)管理服務(wù)組成。第一客戶端是整個(gè)應(yīng)用系統(tǒng)的圖形界面表示層,部署在移動(dòng)終端設(shè)備上。第二應(yīng)用服務(wù)端是以一臺(tái)或多臺(tái)云服務(wù)器組成,其中應(yīng)用服務(wù)器(Application Server)負(fù)責(zé)客戶端應(yīng)用程序的管理及各應(yīng)用事務(wù)處理任務(wù)。第三是數(shù)據(jù)中心層,包括MS SQL Server數(shù)據(jù)庫系統(tǒng),該層主要完成客戶端數(shù)據(jù)存儲(chǔ)和備份,客戶端用戶信息管理等任務(wù)。系統(tǒng)架構(gòu)見圖1。
圖1 系統(tǒng)架構(gòu)Fig.1 System framework
3.1 信息管理平臺(tái)開發(fā)環(huán)境
服務(wù)器端信息管理系統(tǒng)開發(fā)所需軟件如下:
(1)操作系統(tǒng):Windows Server 2008
(2)數(shù)據(jù)庫:MS SQL SERVER
(3)HTTP服務(wù):Windows IIS
(4)開發(fā)環(huán)境:Asp.net
3.2 信息管理系統(tǒng)設(shè)計(jì)
災(zāi)害信息管理系統(tǒng)部署在云服務(wù)器上,該信息管理系統(tǒng)程序中,首先根據(jù)網(wǎng)站架構(gòu)設(shè)計(jì)分類[1],包括用戶管理、系統(tǒng)日志管理、系統(tǒng)設(shè)置、內(nèi)容管理等模塊功能。其中內(nèi)容管理模塊是對(duì)采集數(shù)據(jù)進(jìn)行云端導(dǎo)入、本地導(dǎo)入添加、編輯及匯總導(dǎo)出等功能。如:調(diào)查地點(diǎn)、時(shí)間。該管理系統(tǒng)使得數(shù)據(jù)采集、計(jì)算更加快捷有效,災(zāi)后評(píng)定地震烈度及地震救援提供可靠的科學(xué)依據(jù)。
為考慮到數(shù)據(jù)傳輸過程中的安全,本系統(tǒng)傳輸層通信協(xié)議為TCP/IP和HTTP協(xié)議。結(jié)合Windows 操作系統(tǒng)可擴(kuò)展性,選用IIS 服務(wù)器,采用ODBC驅(qū)動(dòng)器連接SQL server數(shù)據(jù)庫。數(shù)據(jù)傳輸采用json 格式,易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成[2-3]。
移動(dòng)客戶端軟件運(yùn)行于Android 4.0以上系統(tǒng)。客戶端應(yīng)用系統(tǒng)開發(fā)采用基于C#語言和.Net核心API庫、環(huán)境和工具集的MonoDroid環(huán)境,其使用Mono虛擬機(jī)作為Android移動(dòng)操作系統(tǒng)開發(fā)應(yīng)用程序。
客戶端APP軟件設(shè)有系統(tǒng)設(shè)置、添加抽樣點(diǎn)、添加采集信息、保存、上傳、刪除等功能模塊組成??蛻舳塑浖阅K化方式設(shè)計(jì),每一個(gè)主要功能內(nèi)設(shè)置了多個(gè)數(shù)據(jù)模版,填表時(shí)根據(jù)類型進(jìn)行選擇表單模塊。系統(tǒng)功能模塊和主要用途表見表1??蛻舳瞬僮鹘缑嬉妶D2。
表1 系統(tǒng)功能模塊及主要用途表
圖2 客戶端操作界面Fig.2 The client operation interface
5.1 抽樣點(diǎn)信息采集
抽樣點(diǎn)信息主要是地震對(duì)人及建筑物的損壞情況,包括:人員傷亡數(shù)據(jù)、建筑物破壞程度信息、地震現(xiàn)場圖片及視頻、地震烈度等信息。抽樣點(diǎn)經(jīng)緯度空間數(shù)據(jù)利用智能手機(jī)GPS定位功能獲取,然后與災(zāi)情信息一起提交至云端服務(wù)器[4]。數(shù)據(jù)采集流程如圖3。
圖3 數(shù)據(jù)采集流程圖Fig.3 The flow chart of data acquisition
5.2 數(shù)據(jù)上傳方式
地震現(xiàn)場信息采集人員通過手機(jī)客戶端填寫相應(yīng)的表單,采集現(xiàn)場災(zāi)情完畢之后,保存至手機(jī)本地SQLite數(shù)據(jù)庫中。當(dāng)移動(dòng)通信網(wǎng)絡(luò)恢復(fù)正常或發(fā)現(xiàn)WiFi網(wǎng)絡(luò)區(qū)域之后,選擇上傳項(xiàng)目進(jìn)行傳送數(shù)據(jù)。
數(shù)據(jù)上傳方法首先利用DefaultHttpClient進(jìn)程獲得Android 默認(rèn)的HTTP 客戶端httpclient服務(wù),同時(shí)由HttpPost 服務(wù)生成一個(gè)Http Post的對(duì)象,然后利用ArrayList 放入Post 內(nèi)容的鍵值對(duì),最后通過httpclient 的execute()方法發(fā)出實(shí)際的Http Post 請(qǐng)求,實(shí)現(xiàn)數(shù)據(jù)的在線提交任務(wù)[5]。
5.3 定位信息獲取
Android 系統(tǒng)中GPS定位功能是由Location -Manager 項(xiàng)目進(jìn)行統(tǒng)一管理,LocationManager項(xiàng)目為提供一系列方法和屬性,處理和獲取地理位置變化等問題。
首先 用GetSystemService()方法獲取系統(tǒng)的GPS服務(wù),成功獲取該服務(wù)以后,再注冊(cè)一個(gè)位置更新的事件監(jiān)聽器,然后通過調(diào)用OnLocationChanged()位置改變服務(wù)的方法即可獲取實(shí)時(shí)定位數(shù)據(jù),該方法中的監(jiān)聽器LocationListener參數(shù)負(fù)責(zé)實(shí)時(shí)監(jiān)聽衛(wèi)星數(shù)據(jù)的變化[6]。GPS定位數(shù)據(jù)更新后還需要OnResume()和OnPause()方法來重新掛鉤Android活動(dòng)生命周期,從而不再新建監(jiān)聽器對(duì)象。定位信息獲取模塊部分代碼如下。
5.4 地震現(xiàn)場圖片視頻采集
圖片視頻采集模塊主要功能是地震中受破壞的建筑物進(jìn)行拍照或攝像方式采集信息。信息采集人員選擇 “照片”或“錄像”選項(xiàng),系統(tǒng)會(huì)自動(dòng)調(diào)用SDetail_Pic或SDetail_Video模版,然后系統(tǒng)創(chuàng)建一個(gè)OnClickListener監(jiān)聽器,調(diào)用OnCreate方法完成數(shù)據(jù)采集任務(wù)。圖片或視頻數(shù)據(jù)將自動(dòng)保存在手機(jī)本地存儲(chǔ)卡指定目錄下,與其他數(shù)據(jù)信息一并上傳至云端服務(wù)器。
作為一個(gè)典型案例,該系統(tǒng)在2015年4月15日阿拉善左旗5.8及地震中得到了初步應(yīng)用。地震發(fā)生兩小時(shí)之后現(xiàn)場科學(xué)考察隊(duì)伍連夜趕往地震現(xiàn)場,4月16日到達(dá)地震現(xiàn)場,聯(lián)合其他省局開展了地震災(zāi)害損失信息采集工作。4月17日匯總各類采集信息,確定地震烈度圖,并把各類災(zāi)害損失統(tǒng)計(jì)數(shù)據(jù)上報(bào)至當(dāng)?shù)卣块T,以便采取有效的應(yīng)急救援措施。
本系統(tǒng)應(yīng)用可實(shí)現(xiàn)地震現(xiàn)場與地震救災(zāi)指揮部之間信息交換、數(shù)據(jù)共享等功能。而且地震應(yīng)急指揮部根據(jù)地震災(zāi)害損失統(tǒng)計(jì)數(shù)據(jù)做出科學(xué)決策,對(duì)人員和物資進(jìn)行合理調(diào)度[7],從而提升地震救援速度和救援效率,因此該系統(tǒng)對(duì)大地震應(yīng)急工作有一定的現(xiàn)實(shí)意義。
(1)本文所述的基于Android 平臺(tái)的地震災(zāi)害信息采集系統(tǒng)具備地震現(xiàn)場圖像視頻采集、人員傷亡統(tǒng)計(jì)、建筑物及財(cái)產(chǎn)受損統(tǒng)計(jì)、宏觀異常現(xiàn)象調(diào)查、地震烈度調(diào)查等功能。
(2)該軟件改變了傳統(tǒng)數(shù)據(jù)采集方法。
(3)目前該系統(tǒng)還處于試驗(yàn)應(yīng)用階段,有待于完善其功能,提高系統(tǒng)穩(wěn)定性。
(4)利用基于Android 平臺(tái)的地震災(zāi)害信息采集系統(tǒng)可實(shí)現(xiàn)數(shù)據(jù)共享和信息交換等功能,對(duì)地震應(yīng)急救援工作提供科學(xué)依據(jù)。
[1] 黃亮,殷軼娜. 開源CMS在遼寧省地震局網(wǎng)站的應(yīng)用[J].防災(zāi)減災(zāi)學(xué)報(bào),2014,(01):62.
[2] 趙士達(dá),張楠,楊爽. 基于云計(jì)算和Android 的地震應(yīng)急信息獲取系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2014, S1(34):298.
[3] 黃東.基于SQLIT的移動(dòng)嵌入式數(shù)據(jù)庫同步系統(tǒng)的研究和開發(fā)[D].武漢:華中師范大學(xué),2009.
[4] 劉細(xì)梅,高光明,牛振國,等 基于平臺(tái)的村鎮(zhèn)環(huán)境污染監(jiān)測(cè)信息采集系統(tǒng)[J].地理空間信息,2014,(05):5.
[5]尚明華,秦磊磊,王風(fēng)云,等. 基于Android 智能手機(jī)的小麥生產(chǎn)風(fēng)險(xiǎn)信息采集系統(tǒng)[J].農(nóng)業(yè)工程學(xué)報(bào),2011(5):180-181.
[6] 劉軍,宋立軍. 基于Android 平臺(tái)的災(zāi)情速報(bào)系統(tǒng)在于田7.3 級(jí)地震中的應(yīng)用[J]. 震災(zāi)防御技術(shù),2014,(04):920.
APPLICATION OF EARTHQUAKE DISASTER INFORMATION ACQUISITION SYSTEM BASED ON ANDROID PLATFORM
XUE Feng , SU Ri-ya , A Na-er, AN Quan, GE Gen
(Seismological Bureau of Inner Mongolia Autonmous Region, Hohhot,Inner Mongolia 010010,China)
In order to obtain the information of the earthquake site quickly, this paper presents a disaster information acquisition system based on Android platform. Combining with the characteristics of Android open source platform and cloud computing technology, this paper discusses the development and design ideas of the earthquake on-site disaster information acquisition system based on Android platform,and introduces the overall framework and design method of this system,furthermore,this paper focuses on the analysis of three aspects of technical difficulties: the implementation method of the main modules, data storage and upload methods, on-site information access. By observing first stage of application, it is obvious that the system have some good characteristic and advantage.
Android; earthquake disaster;SQLite database;Http-Post method
P315.69;P315.9
A DOI:10.13693/j.cnki.cn21-1573.2016.03.013
1674-8565(2016)03-0070-04
2016-06-26
2016-07-18
學(xué)峰(1980-),男,內(nèi)蒙古自治區(qū)科爾沁右翼中旗人,工程師,現(xiàn)主要從事地震信息網(wǎng)絡(luò)運(yùn)維等工作。E-mail: xuf2010@126.com