面向手机终端的地震灾害信息服务系统

2015-12-06 02:49赵士达张楠
中国应急救援 2015年5期
关键词:列表短信灾害

◎ 赵士达 张楠

面向手机终端的地震灾害信息服务系统

◎ 赵士达 张楠

随着互联网技术的发展和智能手机的普及,智能手机已经成为人们获取信息的重要手段。本文针对地震灾害信息的突发性、时效性和持续性的特点,提出了一种面向智能手机的地震灾害信息服务系统的设计方法和实现技术。分析了Android系统的Socket无线通信协议和短信收发机制,设计了地震灾害信息服务系统的软件架构。结合开源GIS技术、LBS技术和推送服务技术,实现了在第一时间向用户发送包括地震快讯,展示地震位置、影响范围和震中距等信息的功能。同时利用地址反编码技术,在应用层设计了“12322”短息速报模块,极大的提高了“12322”地震灾情短信报送的速度。实际应用表明地震灾害信息服务系统具有良好的实用性和应用前景。

安卓 推送 地震影响场 数据库 定位 地震灾害信息

我国地处欧亚板块与太平洋板块的接合部,是一个地震灾害多发的国家,在地震预报这个世界难题尚不能解决前,地震灾害信息服务工作就显得尤为重要。近年来中国地震局和中国地震台网中心在这方面做了很多工作,除了在其官方网站上发布地震灾害信息外还通过与新浪微博合作在地震发生后第一时间向灾区用户推送地震灾害信息。随着智能手机和互联网技术的发展,智能手机已经不单单是一个简单的通讯工具了,它更是一个互联网终端,是用户获取和发布信息的重要手段[1]。如何面向智能手机用户提供及时有效的地震灾害信息服务是未来地震相关部门的一个重要工作。

从2014年的统计数字来看,我国Android系统的手机用户占据了手机市场的绝大多数[2]。近年来针对在Android手机应用于地震灾害信息服务这一领域的研究也越来越多。如王洪辉等[3]对智能手机应用于地质灾害群测群防终端进行了深入的研究并给出了设计方案。郑黎辉[4]对智能手机应用于地震灾情收集处理方向进行了阐述并给出来具体实现方案。赵士达等[5]将云计算技术和LBS(Location Based Service,基于位置的服务)应用到智能手机中,实现了手机终端查找周边应急避难场所的功能。余得水[6]对手机定位信号应用于地震救援这一领域进行了探究。

本文提出了一种面向Android手机的地震灾情信息服务方案,该方案充分利用了互联网技术、开源GIS(Geographic Information System,地理信息系统)、混合定位、推送等技术,在第一时间向用户提供地震三要素信息、用户位置信息、地震影响范围和地图信息等。

1、系统总体设计

从技术层面上分析,面向手机终端的地震灾害信息服务系统的主要功能是在地震发生后迅速地向手机终端发送地震灾害信息并借助开源GIS(地理信息系统,Geographic Information System)技术、LBS(基于位置的服务,Location Based Service)技术将地震灾害信息展示在手机终端上。同时该系统具有灾情信息上报、精确定位、地震影响范围初步评估等功能。

系统的总体结构如图1所示,系统主要可以分为五个主要部分:一是地震灾害信息接收;二是信息处理和存储;三是信息展示;四是信息上报;五是其它辅助功能。

地震灾害信息接收主要是接收地震速报短信和地震灾情推送信息。由于地震速报短信只有地震系统工作人员和某些开通了地震信息短信服务的手机用户才可以收到。所以系统还提供了接收地震灾情推送信息的功能。当地震发生后地震应急指挥中心会通过推送服务器推送地震灾害信息,安装了地震灾害信息服务系统的手机就会接收到地震灾害信息。手机接收到地震灾害信息后会自动跳转到警示界面并伴有振动和铃声以提醒手机用户有地震发生。地震信息处理和存储主要完成从地震灾害信息文本中提取地震时间、地点、经纬度、震级和震源深度等信息并存储到手机数据库中

和完成手机用户定位,计算用户与震中的距离,计算地震影响范围等工作。地震信息展示分为列表模式和地图模式。列表模式是将接收到的地震灾害信息以列表的形式展示出来;地图模式是将地震的震中位置标记在地图上并在地图上显示地震所造成的影响区域,同时在该模式下还提供交通状态图、卫星图和人口热力图的展示。信息上报主要是对“12322”地震灾情短信报送平台的扩展,通过将短息报送功能集成到系统中,利用定位技术和地址反编技术实现快速报送。同时系统还提供了一些实用的辅助功能,包括精确定位、经纬度坐标系转换、富媒体信息推送等。

图1 系统整体设计图

2、 系统实现方案

软件以Android系统作为软件的运行平台,通过利用第三方提供的程序开发包具体实现的。开发过程中所使用到的开发工具包主要包括:百度地图SDK(SoftwareDevelopmentKit,软件开发工具包)、百度定位SDK、百度推送SDK等。

2.1 推送服务

手机推送服务是指服务器定向将信息实时送达手机的服务 。本系统所使用的推送方案为第三方推送服务,即地震发生后通过使用第三方提供的推送服务器向嵌有推送SDK的手机终端定向推送信息。本文所介绍的第三方推送服务是百度推送服务,由于百度推送已经提供了服务器推送页面,所以这里主要介绍手机端推送SDK的集成开发。

推送服务器是通过与手机终端建立一条TCP(Transmission Control Protocol,传输控制协议)长连接来实现数据传输的。推送信息实质就是推送服务器通过这条TCP长连接向手机终端发送HTTP/ HTTPS(HyperText Transfer Protocol,超文本传输协议)字段,手机终端通过解析HTTP/HTTPS字段获取推送信息。使用推送SDK使这一过程得到简化,用户的应用程序不需要直接与复杂的推送HTTP/HTTPS字段进行交互,而是由推送SDK与推送HTTP/HTTPS字段进行交互来访问推送服务器,推送交互过程如图2所示。

图2 推送交互过程

本系统在开发中实现一个Service(服务)和三个Receiver(广播接收器)。Service是在Android系统后台运行的,用于保障与推送服务维持长连接并做相关处理的后台服务。三个Receiver的功能分别是:处理注册绑定后接收服务端返回的channelID等信息;接收系统消息以保证推送服务正常运行;接收并处理推送消息。Receiver的实现方法是通过继承FrontiaPushMessageReceiver类,重写SDK中onBind函数完成终端与推送服务器的绑定;重写onMessage函数完成接收推送消息;重写onNotificationClicked函数完成获取推送通知内容;重写onSetTags和onDelTags两个函数完成推送标签的添加和删除。

2.2 混合定位技术

目前手机定位主要有GPS定位、基站定位和WIFI定位三种方式。其中GPS定位精度最高,但其定位速度较慢且在室内无法定位。基站定位和WIFI定位速度相对较快且在室内可以定位但定位需要依靠网络。出于以上因素考虑,在系统开发时选用百度定位SDK提供的混合定位方式。这种定位方式同时使用GPS定位、基站定位和WIFI定位。在接收到地震信息时,需要迅速完成定位时使用基站定位和WIFI定位;在位置查询时,需要更加准确的位置信息就使用GPS定位。

在系统中多个界面都需要使用到定位数据,这就需要将定位数据进行共享。为了方便定位数据的共享在开发中需要将位置监听函数放到系统Application类中。具体实现方法是编写一个位置监听函数类并对其实现百度位置监听接口。在Application类中完成对该监听函数类的实例化和初始化并设置定位配置接口。其它应用界面需要使用定位数据时只需通过配置定位接口就可以完成定位模式

设定和定位数据获取。

2.3 数据存储

在系统中分别使用了SQlite和SharedPreference两种存储方式。 SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用的一种数据存储方式。SQLite数据库是集成在Android系统上的轻量级关系型数据库,支持如C#、Java、PHP等语言通过ODBC接口操作数据库[7]。SQLite主要用于存储地震发生的位置、时间、经纬度、震级和震源深度,其数据字段定义如表1所示。SQLite数据管理是通过实现一个数据管理类来完成的,该数据管理类继承了SQLiteOpenHelper类,可以实现数据库的更新,数据的添加、删除和更新。SharedPreference也是一种常用的数据存储方式,其本质就是以xml文件的形式保存数据。系统开发中的推送日志和系统日志等均以该方式进行存储。

表1 数据字段定义

2.4 影响范围计算

地震影响场是指地震破坏影响在地表的分布情况[8]。地震影响的大小与地震震级成正比,与震中距成反比,也就是说地震一次释放的能量越多,影响的程度和范围也就越大。中国科学院工程力学研究所在研究报告[9]中给出我国震中烈度的计算公式,公式中M为震级,I0为震中烈度。

目前地震烈度衰减关系计算中普遍采用椭圆模型[10],其计算公式如公式(2),公式中Ia和Ib为长短轴方向平均影响烈度;Aa、Ab、Ba、Bb、Ca、Cb为长短轴方向回归常数,Ra、Rb为长短轴半径;Ra0、Rb0为长短轴方向饱和因子;M为震级。

中国地震局工程力学研究所许卫晓[11]对我国大陆地区地震烈度衰减进行了大量的研究并得出了相关参数的数值,公式如下:

根据公式(3)可以计算得出各影响场的长短轴半径,为了简化终端的计算量,本系统对地震烈度衰减的椭圆模型等效为圆形模型,其等效半径为R,(R2=Ra*Rb)。

根据中国地震烈度表[12]V度区以外的区域不会造成太多破坏,所以在本系统中会根据上述公式计算出V度区的影响半径,通过对比震中距与影响半径来判断终端用户是否处在危险区域。当震中烈度小于V度时,系统不计算地震影响场范围,认定该地震不会造成灾害损失和人员伤亡。

2.5 短信服务

在系统开发中需调用Android系统的方法进行短息的接收和发送。短信的收发主要有Text和PDU(Protocol Data Unit,协议数据单元)两种模式,其中Text模式实现起来相对容易但不支持中文,所以在开发中选用PDU模式。短信接收主要用于接收地震速报短信,其实现方式是编写一个广播接收器程序接收系统广播,然后判断接收的广播是否为短信广播,如果是,则将广播中PDU所载的信息以字节的形式保存到临时变量中,通过对临时变量中特定字符进行比较来判定该短信息是否为地震速报短信。

中国地震局依托防震减灾公益服务12322号码建设了全国统一的地震灾情短信息速报平台。地震后,灾区的灾情速报员、应急救援志愿者和广大群众可将地震感觉和地震造成的破坏情况,按一定的格式约定通过手机编辑短信息发送到地震灾情短信息速报平台[13]。本系统在开发中将“12322”灾情短信报送功能集成到系统中,通过定位技术、地址反编技术和灾害破坏选择按钮,获取报送数据并根据预定的短信格式生成报送短信。该功能缩短了短息编辑时间,提高了报送速度。短信息的发送是通过使用Android系统中的短信管理器smsManager调用短信发送方法sendTextMessage完成的。

2.6 展示功能

地震信息服务系统的展示方式有两种:一种是列表模式展示;一种是地图模式展示。列表展示可以将手机终端收到的全部地震信息展示出来,方便用户浏览全部的震信息。地图模式展示将某次地震信息展示在地图上,包括震中位置、用户所在位置、震中距和影响范围等。同时在地图展示模式中还提供了交通地图展示和热力图展示。

(1)列表模式展示

在Android系统开发中数据列表的实现需要三个步骤:一、准备数据源;二、创建适配器并绑定数据源;三、视图布局加载适配器。

本系统中的数据源来自Android系

统中SQLite数据库中存储的地震信息数据。数据源获取的方法是通过数据库游标指针的遍历,将数据库中的数据逐一保存到一个哈希映射列表中,这个哈希映射列表即为数据源。本系统采用的列表适配是一个基于BaseAdapter的自定义适配器,每个页面显示5条列表信息,通过翻转按钮可以前后翻转列表页。视图布局是每一个列表项的具体布局,本系统采用的列表选项布局为线性布局,通过线性布局嵌套将地震位置、经纬度、震源深度、震中距、震级和时间展示在列表项中。其中适配器与数据源绑定和视图布局加载适配器都是在自定义适配器的getView函数中实现的。

图3 系统各功能界面

(2)地图模式展示

地图模式中的地图信息采用的是百度提供的百度地图。为了方便百度地图的集成应用,百度公司提供了一套地图开发包,即百度地图SDK。Android 2.1及以上版本设备都可以通过调用百度地图SDK接口使用百度地图服务和数据。

百度地图集成开发流程如图3所示。首先使用SDK中的MapView类建立一个地图容器,用于装载和显示地图。通过getmap()函数获取百度基础地 图mBaiduMap。mBaiduMap通 过animateMapStatus()函数将震中设置为地图中心位置;通过addOverlay()函数在地图上为用户位置添加标识,绘制影响范围和添加注意文字。在本系统的地图显示中除提供了基本的地图显示,还提供了卫星地图、交通图和热力图,帮助用户判断地震对周边的影响程度。热力图[14]是获取智能手机的用户在网数量,通过大数据分析,渲染地图颜色,用不同颜色的区块叠加在地图上实时描述人群分布的地图。在地震发生时刻,热力图体现的人口分布与实际人口分布非常接近,对地震人员伤亡的评估具有非常高的参考价值。

3、软件测试

图4 百度地图集成示意图

软件仿真采用华为G520手机实机测试。手机主要参数是Android4.1操作系统、1.2GH四核处理器、512M内存、2G存储卡并支持WIFI功能。

图4(a)为系统主界面,点击列表选项可以跳转到相应的功能界面。图4(b)为警示界面,当系统收到地震灾害短信或推送信息后会跳转到警示界面,提醒用户有地震发生。点击“点击查看详情”按键可以进入地震列表界面。图4(c)为精确定位界面,用户可以选择定位模式

和经纬度坐标系来获取当前所在位置。图4(d)为“12322”报送界面,通过点击相应按钮可以完成报送短信的生成和发送。图5中各图为系统展示界面截图。图5(a)为列表展示截图,单页显示5条列表信息,“Left”和“Right”两个按键可以实现页面的前后翻页功能。点击列表项可以进入该列表记录地震的地图展示界面,如图5(b)所示。在地图模式中可以通过界面上方的选择按钮实现普通地图模式和卫星地图模式的切换,图5(c)为卫星地图模式下的地震灾害信息展示。在实际使用中地震专题图一般是通过推送富媒体信息完成的,图5(d)为手机接收到的专题图展示。

图5 系统展示界面

4、结语

本文分析了地震后人们对地震应急信息的需求,综合了智能手机、无线通信技术、数据库技术、开源GIS、混合定位等技术开发了一套地震灾害信息服务系统。该系统不但可以及时地向用户发送地震灾害信息,还可以以列表和地图两种模式展示地震灾害信息。信息服务系统还集成了“12322”短信报送功能,实现了快速的灾情反馈功能。

目前本系统已在300余台智能手机终端上进行试运行测试。测试结果表明该系统运行稳定,各功能模块工作正常,具有一定的实用价值和应用前景。

作者单位:天津市地震局

[1] 赵士达,张楠,杨爽. 基于云计算和Android的地震应急信息获取系统[J]. 计算机应用,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] 王洪辉,等.基于智能手机的地质灾害群测群防终端[J].工程地质学报,2014,22(3):436-442.

[4] 郑黎辉.基于智能手机地震灾情收集处理系统的设计与实现[D].北京,北京邮电大学. 2012.

[5] 赵士达,等.基于Android系统的避难场所查询软件开发[J]. 电子技术应用,2014,40(3): 133-136.

[6] 余得水.基于手机信号定位技术在地震救援中的探究[J].电子制作,2013,6:18.

[7] 陈望挺.林满足.陈建.章跃.傅奇佳.竺乐庆.基于JSP和Android的C/S结构问卷系统[J].计算机应用,2013,33(3):886-889.

[8] 阮经宜.关于地震影响场定量法的探索[J].华南地震,1984,4(2):65-70.

[9] 中国科学院工程力学研究所.等震线图与震级的统计关系[R].1977.

[10] 聂树明.基于GIS的地震影响场设计与应用[J].应用基础与工程科学学报,2008,16(4),546-554.

[11] 许卫晓.烈度分布快速评估方法研究[D].哈尔滨,中国地震局工程力学研究所.2011.

[12] GB/T 17742-1999,中国地震烈度表.

[13] 中国地震局震灾应急救援司.“12322”全国地震灾情短信息速报平台正式启用[EB/OL].(2008-07-31)[2015-1-7]. http://www.cea.gov.cn/manage/ht ml/8a8587881632fa5c0116674a018300cf/_content/08_07/31/1217506535218.html.

[14] 曾悠.大数据时代背景下的数据可视化概念研究[D].浙江,浙江大学.2014.

猜你喜欢
列表短信灾害
河南郑州“7·20”特大暴雨灾害的警示及应对
学习运用列表法
千年蝗虫灾害的暴发成因
蝗虫灾害的暴发与危害
扩列吧
道歉短信
代发短信
地球变暖——最大的气象灾害
列表画树状图各有所长
2011年《小说月刊》转载列表