2. 中国山东 264000 烟台市地震局
2. Yantai Earthquake Agency, Shandong Province 264000, China
快速反应、协同应对是应急救援的原则之一,地震现场的应急救援涉及破拆搜救、消防灭火、医疗救治、卫生防疫、后勤保障等方面,是一件涉及面广、专业性强的系统性工作,必须依靠各种救援力量的密切配合才能使救援行动有序、高效的开展(韩玮,2012)。在地震救援中,信息就是战斗力,及时准确的信息会提高救援效率,对救援行动起到事半功倍的效果(何卫成,2014)。地震发生后,全国各地的救援物资和救援队伍会陆续抵达灾区,如果组织不好,就会影响救援行动的展开,浪费宝贵的救援时间,降低埋压人员的生存几率,也有损政府形象,所以,必须在地震现场建立统一调度、统一指挥的平台,使救援工作有条不紊的进行(青云,2013)。综合考虑灾区的人口分布、建筑物类型、破坏程度、救援队伍能力等因素,合理分配救援力量和救援物资,对救援工作顺利开展将会发挥重要的推动作用,丰彪等(2010)设计了基于ArcGIS Engine的灾情场景模拟系统,通过地震动场判定和震害预测模块建立震后灾情场景,郭红梅等(2008)根据现有的震害预测模型,在ESRI ArcGIS 9.1平台上开发了搜救指挥辅助决策系统。这些研究有助于地震现场快速科学的搜救指挥,但同时具有一定局限性:①现有的搜救辅助系统对于运行环境的要求较高,需要在底层GIS驱动的支持下才能运行,环境配置复杂,无法满足移动端的应用需求;②以上系统主要目标是评估震后灾情,合理配置救援资源,对于救援资源的信息并未在地图上直观显示出来,无法做到救援态势一目了然;③系统未设计交互功能,只能作为指挥部的单机版辅助决策工具,现场各个处置点的工作人员不能在平台上交流救援进展,也无权限在系统上实时标注实地调查所得信息。
针对以上问题,设计一种B/S架构的分布式地震救援态势标绘系统,采用成熟的Google Maps API v3开发包设计客户端,将震情、灾情和救援要素信息标注在Google Maps底图上,实现对地震现场救援态势的直观显示,具有标绘权限的用户可以同时登录系统,针对某个地震标绘同一张态势图,标绘数据上传到服务器,存储在数据库中,有利于信息汇总和展示,该系统具有聊天室功能,方便用户之间进行交流,由于采用B/S架构设计,无需在客户端部署驱动和数据库,只需要浏览器即可运行系统,支持多种移动终端,适合地震现场人员使用。
1 系统设计 1.1 用户分组地震应急救援态势标绘系统面向3类对象:①现场指挥人员。救援资源到达现场后,录入资源信息,并根据当前现场态势对救援资源进行分配;②现场作业人员。到达指定区域后,可上报现场获取的灾情信息,作业结束后,上报处置结果;③社会公众。作为救援工作的展示窗口,系统面向社会公众,将地震现场的救援处置情况及时传达给外界。
本系统设计了具有不同权限的用户分组,指挥人员权限最高,可以分配救援资源、登记要素信息,作业人员具有信息上报和接收的权限,指挥人员和作业人员可以通过系统聊天室进行在线交流,社会公众只可以查看当前救援态势图。
1.2 功能设计根据地震现场工作的具体需求,系统界面划分为用户登录区、救援信息查询选取区、态势标绘区、信息窗口和聊天窗口几部分,见图 1。
救援信息查询选取区分为震情灾情栏和救援要素栏,其中震情灾情栏可选取主震、余震等震情信息和人员伤亡、建筑物破坏、生命线工程破坏、地质灾害等灾情信息进行标注;救援要素栏可选取救援队伍、生活安置、医疗卫生、通讯电力等救援要素进行标注。
态势标绘区可以标绘、删除要素,可对每个要素标注属性信息,要素标绘完成后点击“保存”,将要素信息上传到服务器端,保存在数据库里。数据库存储了不同用户标绘的要素数据,点击“刷新”,所有要素显示在态势标绘区谷歌底图上。标绘区设计了实时路况、实景照片、绘图控件、距离测量等实用功能,可根据不同需求切换地图类型,如图 2所示,分别为卫星遥感图、地形图和基础路网图。
信息窗口显示用户标绘、删除、保存、刷新、清空等操作,聊天窗口显示聊天信息,只有登录用户才具有在线交流权限。
2 系统实现 2.1 加载地图使用Google Maps API v3实现前端的WebGIS功能,加载谷歌地图类库(该类库实现地图操作的接口函数功能),可以调用该类库定义的方法。可用以下代码调用google.maps.Map构造函数,实现地图加载。
var map = new google.maps.Map($(" #map" )[0], myOptions);
google.maps.Map构造函数有2个参数:①地图容器,一般为div元素;②一个MapOptions对象,指定地图初始化参数,比如中心点、缩放级别、地图类型、控件启用状态等。
2.2 用户登录和聊天室将用户名、密码封装成JSON格式,通过AJAX方法传递给后台,通过验证后用户登录,调用setInterval(getChatContent, 3000),每隔3 s访问一次聊天内容处理程序chatContent.ashx,将更新的聊天内容添加到聊天窗口,代码为
$(" #chatErea" ).append(item.username + ' :' + item.chatcontent + ' \n' );
2.3 标绘要素为map对象添加click事件处理函数,需判断是否已在要素选取栏选取要素及用户是否有权限进行标绘,若为游客,则弹出对话框,提示登录后才能进行操作,若用户已登录,选取要素后点击标绘区,可将要素放置在相应位置,同时弹出对话框,提示输入要素属性,输入完成后创建一个Marker对象,并为该对象添加单击响应,单击后可弹出要素类型、要素属性等描述信息,将Marker添加到markersArray数组。主要代码如下
google.maps.event.addListener(map, " click" , function (event) {
if (!selectedMarker) return 0;
if (!ifLogin) {
alert(" 请登录后再进行标绘!" );
return 0;
}
var str = prompt(" 请输入要素属性:" );
var marker = new google.maps.Marker(……);
var infoWindow = new google.maps.InfoWindow(……);
google.maps.event.addListener(marker, " click" , function (event) {
infowindow.open(map, marker);
});
markersArray.push(marker);
}
每个Marker对象还实现了对" rightclick" 、" dbclick" 事件的响应,其中右键单击Marker对象用于删除当前对象,双击Marker对象用于更改对象的属性信息,比如作业结束后添加处置结果信息。
2.4 保存和刷新标绘信息每个Marker对象有一个布尔类型属性isSaved,当添加一个Marker或者Marker移动位置、更改属性后,该对象的isSaved置为FALSE,点击“保存”,将遍历markersArray数组,将isSaved为FALSE的Marker对象的信息进行JSON序列化,并将更改过的标绘要素信息构造为字符串jsonData,通过$.ajax方法进行传递,服务器端RefMakInfo.ashx负责处理并保存上传的数据,保存成功后,将Marker的isSaved属性置为TRUE。具体代码为
$.ajax({
type: " POST" ,
url: " RefMakInfo.ashx" ,
data: jsonData,
dataType: " text" ,
success: function () {
//遍历markersArray数组,将isSaved属性置为TRUE
}
});
刷新也通过$.ajax方法访问RefMakInfo.ashx,获得服务器端数据进行解析,将要素一一显示在标绘区。
2.5 封装数据操作类服务器端一般处理程序RefMakInfo.ashx响应前端AJAX请求,定义一个数据操作类DatabaseManager,该类实现2个方法GetMarkers和SaveMarkers,接收到前端传递的Marker数据后,进行解析,并调用SaveMarkers保存Marker信息,同时将检查Marker唯一标识符uid,当该Marker的uid与数据库中已有某条记录的uid相同时,将对该条记录进行更新操作,否则添加一条记录,若接收的AJAX请求未传递数据,则作为“刷新”命令,调用GetMarkers获得数据库数据,JSON序列化后传递到前端。数据操作类DatabaseManager的主要代码如下
public class DatabaseManager{
private IList < MarkersDao > _markers = new List < MarkersDao > ();
public IList < MarkersDao > GetMarkers(){
//创建数据库连接,调用ExecuteReader读取数据
}
public void SaveMarkers(List < MarkersDao > mkInfo) {
//创建数据库连接,使用INSERT或UPDATE命令添加或更新数据库数据
}
}
3 应用效果地震应急救援态势标绘系统完成后,部署在山东省地震局机房服务器,在地震现场应急演练中多次使用,用于标注模拟地震的震情灾情以及救援力量的分配情况。本系统支持基于WebKit内核的浏览器,也可在移动端应用。在2016年全国地震应急演练中,该系统配合中国地震局下发的灾情调查上报系统,在模拟地震灾区的灾情调查中,通过平板电脑将灾情在本系统上进行标注,标注结果上传到服务器,可以在后方指挥部和现场指挥车实时访问灾情标注信息,实现灾情快速回传和访问,具有良好的直观表现效果,为指挥人员的指挥决策提供第一手灾情调查资料。在2017年山东省应急救援综合演练中,本系统对演练场地地震系统的入场资源进行登记,可以随时查找并定位相关资源信息,在装备展示环节,通过本系统调度车辆、物资、装备、人员,各种资源摆放在地图上一目了然,有力保障了现场指挥调度工作。
4 结束语地震应急救援态势标绘系统实现了救援要素和震情灾情信息在统一平台上的标绘,支持多用户标绘作业,有利于信息汇集发布和救援辅助决策。目前震情信息需要手动标注,不能自动获取,今后将考虑对全国地震速报信息共享系统(EQIM)的访问,自动获取并标注震情信息,也将探讨扩展灾情数据来源,丰富系统的信息量。
丰彪, 文里梁, 王自法, 等. 基于三维GIS技术的地震灾情场景模拟系统[J]. 世界地震工程, 2010, 26(1): 114-120. | |
郭红梅, 黄丁发, 陈维锋, 等. 城市地震现场搜救指挥辅助决策系统的设计与开发[J]. 地震研究, 2008, 31(1): 83-88. | |
韩玮, 陈维锋, 顾建华, 等. 地震救援行动的影响因素分析[J]. 灾害学, 2012, 27(4): 132-137. | |
何卫成. 地震灾害应急救援行动中的关键问题[J]. 中国应急救援, 2014(4): 22-25. | |
青云. 地震之后如何科学救援[J]. 生命与灾害, 2013(5): 4-7. |