◎ 趙士達 張楠
面向手機終端的地震災(zāi)害信息服務(wù)系統(tǒng)
◎ 趙士達 張楠
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和智能手機的普及,智能手機已經(jīng)成為人們獲取信息的重要手段。本文針對地震災(zāi)害信息的突發(fā)性、時效性和持續(xù)性的特點,提出了一種面向智能手機的地震災(zāi)害信息服務(wù)系統(tǒng)的設(shè)計方法和實現(xiàn)技術(shù)。分析了Android系統(tǒng)的Socket無線通信協(xié)議和短信收發(fā)機制,設(shè)計了地震災(zāi)害信息服務(wù)系統(tǒng)的軟件架構(gòu)。結(jié)合開源GIS技術(shù)、LBS技術(shù)和推送服務(wù)技術(shù),實現(xiàn)了在第一時間向用戶發(fā)送包括地震快訊,展示地震位置、影響范圍和震中距等信息的功能。同時利用地址反編碼技術(shù),在應(yīng)用層設(shè)計了“12322”短息速報模塊,極大的提高了“12322”地震災(zāi)情短信報送的速度。實際應(yīng)用表明地震災(zāi)害信息服務(wù)系統(tǒng)具有良好的實用性和應(yīng)用前景。
安卓 推送 地震影響場 數(shù)據(jù)庫 定位 地震災(zāi)害信息
我國地處歐亞板塊與太平洋板塊的接合部,是一個地震災(zāi)害多發(fā)的國家,在地震預(yù)報這個世界難題尚不能解決前,地震災(zāi)害信息服務(wù)工作就顯得尤為重要。近年來中國地震局和中國地震臺網(wǎng)中心在這方面做了很多工作,除了在其官方網(wǎng)站上發(fā)布地震災(zāi)害信息外還通過與新浪微博合作在地震發(fā)生后第一時間向災(zāi)區(qū)用戶推送地震災(zāi)害信息。隨著智能手機和互聯(lián)網(wǎng)技術(shù)的發(fā)展,智能手機已經(jīng)不單單是一個簡單的通訊工具了,它更是一個互聯(lián)網(wǎng)終端,是用戶獲取和發(fā)布信息的重要手段[1]。如何面向智能手機用戶提供及時有效的地震災(zāi)害信息服務(wù)是未來地震相關(guān)部門的一個重要工作。
從2014年的統(tǒng)計數(shù)字來看,我國Android系統(tǒng)的手機用戶占據(jù)了手機市場的絕大多數(shù)[2]。近年來針對在Android手機應(yīng)用于地震災(zāi)害信息服務(wù)這一領(lǐng)域的研究也越來越多。如王洪輝等[3]對智能手機應(yīng)用于地質(zhì)災(zāi)害群測群防終端進行了深入的研究并給出了設(shè)計方案。鄭黎輝[4]對智能手機應(yīng)用于地震災(zāi)情收集處理方向進行了闡述并給出來具體實現(xiàn)方案。趙士達等[5]將云計算技術(shù)和LBS(Location Based Service,基于位置的服務(wù))應(yīng)用到智能手機中,實現(xiàn)了手機終端查找周邊應(yīng)急避難場所的功能。余得水[6]對手機定位信號應(yīng)用于地震救援這一領(lǐng)域進行了探究。
本文提出了一種面向Android手機的地震災(zāi)情信息服務(wù)方案,該方案充分利用了互聯(lián)網(wǎng)技術(shù)、開源GIS(Geographic Information System,地理信息系統(tǒng))、混合定位、推送等技術(shù),在第一時間向用戶提供地震三要素信息、用戶位置信息、地震影響范圍和地圖信息等。
從技術(shù)層面上分析,面向手機終端的地震災(zāi)害信息服務(wù)系統(tǒng)的主要功能是在地震發(fā)生后迅速地向手機終端發(fā)送地震災(zāi)害信息并借助開源GIS(地理信息系統(tǒng),Geographic Information System)技術(shù)、LBS(基于位置的服務(wù),Location Based Service)技術(shù)將地震災(zāi)害信息展示在手機終端上。同時該系統(tǒng)具有災(zāi)情信息上報、精確定位、地震影響范圍初步評估等功能。
系統(tǒng)的總體結(jié)構(gòu)如圖1所示,系統(tǒng)主要可以分為五個主要部分:一是地震災(zāi)害信息接收;二是信息處理和存儲;三是信息展示;四是信息上報;五是其它輔助功能。
地震災(zāi)害信息接收主要是接收地震速報短信和地震災(zāi)情推送信息。由于地震速報短信只有地震系統(tǒng)工作人員和某些開通了地震信息短信服務(wù)的手機用戶才可以收到。所以系統(tǒng)還提供了接收地震災(zāi)情推送信息的功能。當?shù)卣鸢l(fā)生后地震應(yīng)急指揮中心會通過推送服務(wù)器推送地震災(zāi)害信息,安裝了地震災(zāi)害信息服務(wù)系統(tǒng)的手機就會接收到地震災(zāi)害信息。手機接收到地震災(zāi)害信息后會自動跳轉(zhuǎn)到警示界面并伴有振動和鈴聲以提醒手機用戶有地震發(fā)生。地震信息處理和存儲主要完成從地震災(zāi)害信息文本中提取地震時間、地點、經(jīng)緯度、震級和震源深度等信息并存儲到手機數(shù)據(jù)庫中
和完成手機用戶定位,計算用戶與震中的距離,計算地震影響范圍等工作。地震信息展示分為列表模式和地圖模式。列表模式是將接收到的地震災(zāi)害信息以列表的形式展示出來;地圖模式是將地震的震中位置標記在地圖上并在地圖上顯示地震所造成的影響區(qū)域,同時在該模式下還提供交通狀態(tài)圖、衛(wèi)星圖和人口熱力圖的展示。信息上報主要是對“12322”地震災(zāi)情短信報送平臺的擴展,通過將短息報送功能集成到系統(tǒng)中,利用定位技術(shù)和地址反編技術(shù)實現(xiàn)快速報送。同時系統(tǒng)還提供了一些實用的輔助功能,包括精確定位、經(jīng)緯度坐標系轉(zhuǎn)換、富媒體信息推送等。
圖1 系統(tǒng)整體設(shè)計圖
軟件以Android系統(tǒng)作為軟件的運行平臺,通過利用第三方提供的程序開發(fā)包具體實現(xiàn)的。開發(fā)過程中所使用到的開發(fā)工具包主要包括:百度地圖SDK(SoftwareDevelopmentKit,軟件開發(fā)工具包)、百度定位SDK、百度推送SDK等。
2.1 推送服務(wù)
手機推送服務(wù)是指服務(wù)器定向?qū)⑿畔崟r送達手機的服務(wù) 。本系統(tǒng)所使用的推送方案為第三方推送服務(wù),即地震發(fā)生后通過使用第三方提供的推送服務(wù)器向嵌有推送SDK的手機終端定向推送信息。本文所介紹的第三方推送服務(wù)是百度推送服務(wù),由于百度推送已經(jīng)提供了服務(wù)器推送頁面,所以這里主要介紹手機端推送SDK的集成開發(fā)。
推送服務(wù)器是通過與手機終端建立一條TCP(Transmission Control Protocol,傳輸控制協(xié)議)長連接來實現(xiàn)數(shù)據(jù)傳輸?shù)?。推送信息實質(zhì)就是推送服務(wù)器通過這條TCP長連接向手機終端發(fā)送HTTP/ HTTPS(HyperText Transfer Protocol,超文本傳輸協(xié)議)字段,手機終端通過解析HTTP/HTTPS字段獲取推送信息。使用推送SDK使這一過程得到簡化,用戶的應(yīng)用程序不需要直接與復(fù)雜的推送HTTP/HTTPS字段進行交互,而是由推送SDK與推送HTTP/HTTPS字段進行交互來訪問推送服務(wù)器,推送交互過程如圖2所示。
圖2 推送交互過程
本系統(tǒng)在開發(fā)中實現(xiàn)一個Service(服務(wù))和三個Receiver(廣播接收器)。Service是在Android系統(tǒng)后臺運行的,用于保障與推送服務(wù)維持長連接并做相關(guān)處理的后臺服務(wù)。三個Receiver的功能分別是:處理注冊綁定后接收服務(wù)端返回的channelID等信息;接收系統(tǒng)消息以保證推送服務(wù)正常運行;接收并處理推送消息。Receiver的實現(xiàn)方法是通過繼承FrontiaPushMessageReceiver類,重寫SDK中onBind函數(shù)完成終端與推送服務(wù)器的綁定;重寫onMessage函數(shù)完成接收推送消息;重寫onNotificationClicked函數(shù)完成獲取推送通知內(nèi)容;重寫onSetTags和onDelTags兩個函數(shù)完成推送標簽的添加和刪除。
2.2 混合定位技術(shù)
目前手機定位主要有GPS定位、基站定位和WIFI定位三種方式。其中GPS定位精度最高,但其定位速度較慢且在室內(nèi)無法定位?;径ㄎ缓蚖IFI定位速度相對較快且在室內(nèi)可以定位但定位需要依靠網(wǎng)絡(luò)。出于以上因素考慮,在系統(tǒng)開發(fā)時選用百度定位SDK提供的混合定位方式。這種定位方式同時使用GPS定位、基站定位和WIFI定位。在接收到地震信息時,需要迅速完成定位時使用基站定位和WIFI定位;在位置查詢時,需要更加準確的位置信息就使用GPS定位。
在系統(tǒng)中多個界面都需要使用到定位數(shù)據(jù),這就需要將定位數(shù)據(jù)進行共享。為了方便定位數(shù)據(jù)的共享在開發(fā)中需要將位置監(jiān)聽函數(shù)放到系統(tǒng)Application類中。具體實現(xiàn)方法是編寫一個位置監(jiān)聽函數(shù)類并對其實現(xiàn)百度位置監(jiān)聽接口。在Application類中完成對該監(jiān)聽函數(shù)類的實例化和初始化并設(shè)置定位配置接口。其它應(yīng)用界面需要使用定位數(shù)據(jù)時只需通過配置定位接口就可以完成定位模式
設(shè)定和定位數(shù)據(jù)獲取。
2.3 數(shù)據(jù)存儲
在系統(tǒng)中分別使用了SQlite和SharedPreference兩種存儲方式。 SQLite是一個輕量級的數(shù)據(jù)庫,支持基本SQL語法,是常被采用的一種數(shù)據(jù)存儲方式。SQLite數(shù)據(jù)庫是集成在Android系統(tǒng)上的輕量級關(guān)系型數(shù)據(jù)庫,支持如C#、Java、PHP等語言通過ODBC接口操作數(shù)據(jù)庫[7]。SQLite主要用于存儲地震發(fā)生的位置、時間、經(jīng)緯度、震級和震源深度,其數(shù)據(jù)字段定義如表1所示。SQLite數(shù)據(jù)管理是通過實現(xiàn)一個數(shù)據(jù)管理類來完成的,該數(shù)據(jù)管理類繼承了SQLiteOpenHelper類,可以實現(xiàn)數(shù)據(jù)庫的更新,數(shù)據(jù)的添加、刪除和更新。SharedPreference也是一種常用的數(shù)據(jù)存儲方式,其本質(zhì)就是以xml文件的形式保存數(shù)據(jù)。系統(tǒng)開發(fā)中的推送日志和系統(tǒng)日志等均以該方式進行存儲。
表1 數(shù)據(jù)字段定義
2.4 影響范圍計算
地震影響場是指地震破壞影響在地表的分布情況[8]。地震影響的大小與地震震級成正比,與震中距成反比,也就是說地震一次釋放的能量越多,影響的程度和范圍也就越大。中國科學院工程力學研究所在研究報告[9]中給出我國震中烈度的計算公式,公式中M為震級,I0為震中烈度。
目前地震烈度衰減關(guān)系計算中普遍采用橢圓模型[10],其計算公式如公式(2),公式中Ia和Ib為長短軸方向平均影響烈度;Aa、Ab、Ba、Bb、Ca、Cb為長短軸方向回歸常數(shù),Ra、Rb為長短軸半徑;Ra0、Rb0為長短軸方向飽和因子;M為震級。
中國地震局工程力學研究所許衛(wèi)曉[11]對我國大陸地區(qū)地震烈度衰減進行了大量的研究并得出了相關(guān)參數(shù)的數(shù)值,公式如下:
根據(jù)公式(3)可以計算得出各影響場的長短軸半徑,為了簡化終端的計算量,本系統(tǒng)對地震烈度衰減的橢圓模型等效為圓形模型,其等效半徑為R,(R2=Ra*Rb)。
根據(jù)中國地震烈度表[12]V度區(qū)以外的區(qū)域不會造成太多破壞,所以在本系統(tǒng)中會根據(jù)上述公式計算出V度區(qū)的影響半徑,通過對比震中距與影響半徑來判斷終端用戶是否處在危險區(qū)域。當震中烈度小于V度時,系統(tǒng)不計算地震影響場范圍,認定該地震不會造成災(zāi)害損失和人員傷亡。
2.5 短信服務(wù)
在系統(tǒng)開發(fā)中需調(diào)用Android系統(tǒng)的方法進行短息的接收和發(fā)送。短信的收發(fā)主要有Text和PDU(Protocol Data Unit,協(xié)議數(shù)據(jù)單元)兩種模式,其中Text模式實現(xiàn)起來相對容易但不支持中文,所以在開發(fā)中選用PDU模式。短信接收主要用于接收地震速報短信,其實現(xiàn)方式是編寫一個廣播接收器程序接收系統(tǒng)廣播,然后判斷接收的廣播是否為短信廣播,如果是,則將廣播中PDU所載的信息以字節(jié)的形式保存到臨時變量中,通過對臨時變量中特定字符進行比較來判定該短信息是否為地震速報短信。
中國地震局依托防震減災(zāi)公益服務(wù)12322號碼建設(shè)了全國統(tǒng)一的地震災(zāi)情短信息速報平臺。地震后,災(zāi)區(qū)的災(zāi)情速報員、應(yīng)急救援志愿者和廣大群眾可將地震感覺和地震造成的破壞情況,按一定的格式約定通過手機編輯短信息發(fā)送到地震災(zāi)情短信息速報平臺[13]。本系統(tǒng)在開發(fā)中將“12322”災(zāi)情短信報送功能集成到系統(tǒng)中,通過定位技術(shù)、地址反編技術(shù)和災(zāi)害破壞選擇按鈕,獲取報送數(shù)據(jù)并根據(jù)預(yù)定的短信格式生成報送短信。該功能縮短了短息編輯時間,提高了報送速度。短信息的發(fā)送是通過使用Android系統(tǒng)中的短信管理器smsManager調(diào)用短信發(fā)送方法sendTextMessage完成的。
2.6 展示功能
地震信息服務(wù)系統(tǒng)的展示方式有兩種:一種是列表模式展示;一種是地圖模式展示。列表展示可以將手機終端收到的全部地震信息展示出來,方便用戶瀏覽全部的震信息。地圖模式展示將某次地震信息展示在地圖上,包括震中位置、用戶所在位置、震中距和影響范圍等。同時在地圖展示模式中還提供了交通地圖展示和熱力圖展示。
(1)列表模式展示
在Android系統(tǒng)開發(fā)中數(shù)據(jù)列表的實現(xiàn)需要三個步驟:一、準備數(shù)據(jù)源;二、創(chuàng)建適配器并綁定數(shù)據(jù)源;三、視圖布局加載適配器。
本系統(tǒng)中的數(shù)據(jù)源來自Android系
統(tǒng)中SQLite數(shù)據(jù)庫中存儲的地震信息數(shù)據(jù)。數(shù)據(jù)源獲取的方法是通過數(shù)據(jù)庫游標指針的遍歷,將數(shù)據(jù)庫中的數(shù)據(jù)逐一保存到一個哈希映射列表中,這個哈希映射列表即為數(shù)據(jù)源。本系統(tǒng)采用的列表適配是一個基于BaseAdapter的自定義適配器,每個頁面顯示5條列表信息,通過翻轉(zhuǎn)按鈕可以前后翻轉(zhuǎn)列表頁。視圖布局是每一個列表項的具體布局,本系統(tǒng)采用的列表選項布局為線性布局,通過線性布局嵌套將地震位置、經(jīng)緯度、震源深度、震中距、震級和時間展示在列表項中。其中適配器與數(shù)據(jù)源綁定和視圖布局加載適配器都是在自定義適配器的getView函數(shù)中實現(xiàn)的。
圖3 系統(tǒng)各功能界面
(2)地圖模式展示
地圖模式中的地圖信息采用的是百度提供的百度地圖。為了方便百度地圖的集成應(yīng)用,百度公司提供了一套地圖開發(fā)包,即百度地圖SDK。Android 2.1及以上版本設(shè)備都可以通過調(diào)用百度地圖SDK接口使用百度地圖服務(wù)和數(shù)據(jù)。
百度地圖集成開發(fā)流程如圖3所示。首先使用SDK中的MapView類建立一個地圖容器,用于裝載和顯示地圖。通過getmap()函數(shù)獲取百度基礎(chǔ)地 圖mBaiduMap。mBaiduMap通 過animateMapStatus()函數(shù)將震中設(shè)置為地圖中心位置;通過addOverlay()函數(shù)在地圖上為用戶位置添加標識,繪制影響范圍和添加注意文字。在本系統(tǒng)的地圖顯示中除提供了基本的地圖顯示,還提供了衛(wèi)星地圖、交通圖和熱力圖,幫助用戶判斷地震對周邊的影響程度。熱力圖[14]是獲取智能手機的用戶在網(wǎng)數(shù)量,通過大數(shù)據(jù)分析,渲染地圖顏色,用不同顏色的區(qū)塊疊加在地圖上實時描述人群分布的地圖。在地震發(fā)生時刻,熱力圖體現(xiàn)的人口分布與實際人口分布非常接近,對地震人員傷亡的評估具有非常高的參考價值。
圖4 百度地圖集成示意圖
軟件仿真采用華為G520手機實機測試。手機主要參數(shù)是Android4.1操作系統(tǒng)、1.2GH四核處理器、512M內(nèi)存、2G存儲卡并支持WIFI功能。
圖4(a)為系統(tǒng)主界面,點擊列表選項可以跳轉(zhuǎn)到相應(yīng)的功能界面。圖4(b)為警示界面,當系統(tǒng)收到地震災(zāi)害短信或推送信息后會跳轉(zhuǎn)到警示界面,提醒用戶有地震發(fā)生。點擊“點擊查看詳情”按鍵可以進入地震列表界面。圖4(c)為精確定位界面,用戶可以選擇定位模式
和經(jīng)緯度坐標系來獲取當前所在位置。圖4(d)為“12322”報送界面,通過點擊相應(yīng)按鈕可以完成報送短信的生成和發(fā)送。圖5中各圖為系統(tǒng)展示界面截圖。圖5(a)為列表展示截圖,單頁顯示5條列表信息,“Left”和“Right”兩個按鍵可以實現(xiàn)頁面的前后翻頁功能。點擊列表項可以進入該列表記錄地震的地圖展示界面,如圖5(b)所示。在地圖模式中可以通過界面上方的選擇按鈕實現(xiàn)普通地圖模式和衛(wèi)星地圖模式的切換,圖5(c)為衛(wèi)星地圖模式下的地震災(zāi)害信息展示。在實際使用中地震專題圖一般是通過推送富媒體信息完成的,圖5(d)為手機接收到的專題圖展示。
圖5 系統(tǒng)展示界面
本文分析了地震后人們對地震應(yīng)急信息的需求,綜合了智能手機、無線通信技術(shù)、數(shù)據(jù)庫技術(shù)、開源GIS、混合定位等技術(shù)開發(fā)了一套地震災(zāi)害信息服務(wù)系統(tǒng)。該系統(tǒng)不但可以及時地向用戶發(fā)送地震災(zāi)害信息,還可以以列表和地圖兩種模式展示地震災(zāi)害信息。信息服務(wù)系統(tǒng)還集成了“12322”短信報送功能,實現(xiàn)了快速的災(zāi)情反饋功能。
目前本系統(tǒng)已在300余臺智能手機終端上進行試運行測試。測試結(jié)果表明該系統(tǒng)運行穩(wěn)定,各功能模塊工作正常,具有一定的實用價值和應(yīng)用前景。
作者單位:天津市地震局
[1] 趙士達,張楠,楊爽. 基于云計算和Android的地震應(yīng)急信息獲取系統(tǒng)[J]. 計算機應(yīng)用,2014,34(S1): 298-300.
[2] 唐小引. 移動平臺市場占有率:Android首次趕超IOS [EB/OL].(2014-08-05)[2015-1-4]. http://www.csdn.net/article/2014-08-05/2821047-iosusage-falls-behind-android-for-the-first-time.
[3] 王洪輝,等.基于智能手機的地質(zhì)災(zāi)害群測群防終端[J].工程地質(zhì)學報,2014,22(3):436-442.
[4] 鄭黎輝.基于智能手機地震災(zāi)情收集處理系統(tǒng)的設(shè)計與實現(xiàn)[D].北京,北京郵電大學. 2012.
[5] 趙士達,等.基于Android系統(tǒng)的避難場所查詢軟件開發(fā)[J]. 電子技術(shù)應(yīng)用,2014,40(3): 133-136.
[6] 余得水.基于手機信號定位技術(shù)在地震救援中的探究[J].電子制作,2013,6:18.
[7] 陳望挺.林滿足.陳建.章躍.傅奇佳.竺樂慶.基于JSP和Android的C/S結(jié)構(gòu)問卷系統(tǒng)[J].計算機應(yīng)用,2013,33(3):886-889.
[8] 阮經(jīng)宜.關(guān)于地震影響場定量法的探索[J].華南地震,1984,4(2):65-70.
[9] 中國科學院工程力學研究所.等震線圖與震級的統(tǒng)計關(guān)系[R].1977.
[10] 聶樹明.基于GIS的地震影響場設(shè)計與應(yīng)用[J].應(yīng)用基礎(chǔ)與工程科學學報,2008,16(4),546-554.
[11] 許衛(wèi)曉.烈度分布快速評估方法研究[D].哈爾濱,中國地震局工程力學研究所.2011.
[12] GB/T 17742-1999,中國地震烈度表.
[13] 中國地震局震災(zāi)應(yīng)急救援司.“12322”全國地震災(zāi)情短信息速報平臺正式啟用[EB/OL].(2008-07-31)[2015-1-7]. http://www.cea.gov.cn/manage/ht ml/8a8587881632fa5c0116674a018300cf/_content/08_07/31/1217506535218.html.
[14] 曾悠.大數(shù)據(jù)時代背景下的數(shù)據(jù)可視化概念研究[D].浙江,浙江大學.2014.