Google地图应用之广东省地区JOPENS地震速报系统

2011-12-22 13:31陈贵美
华南地震 2011年3期
关键词:速报浏览器广东省

刘 军,陈贵美

(广东省地震局,广东 广州 510070)

Google地图应用之广东省地区JOPENS地震速报系统

刘 军,陈贵美

(广东省地震局,广东 广州 510070)

利用Google公司提供的电子地图服务,以B/S结构(即浏览器和服务器结构)作为系统设计架构,监听JOPENS实时系统发送的地震触发消息,访问JOPENS数据库,根据广东省地区的监测要求,制定检索、筛选策略,获取地震详细信息,显示在浏览器网页上。采用Google地图的JOPENS地震速报系统可以使地震信息发布的显示内容更丰富,更具体,并且及时有效的为地震应急部门和公众提供多样化的数据服务。

Google地图;JOPENS实时系统;B/S结构;地震;信息发布

引言

随着Web地理信息技术的发展,Google公司推出了Google地图服务,不需要安装软件,直接用浏览器打开Google地图网址就可以使用各种地理信息服务。Google地图服务旨在提供全球范围的电子地图服务。它能提供三种视图:一是矢量地图(传统地图),可提供政区和交通以及商业信息;二是不同分辨率的卫星照片(俯视图,跟Google Earth上的卫星照片基本一样);三是地形视图,可以用以显示地形和等高线[1~2]。同时开发者可以使用Javascript语言调用Google地图API接口进行二次开发,将地图信息嵌入到自己的应用中。另外由广东省地震局开发的JOPENS系统作为一套完整的地震数据处理系统也在全国范围内得到广泛的使用,其可靠性与稳定性得到了同行的认可,其消息服务器的接收与发布机制相当健壮。近几年国内外大地震不断,汶川地震,玉树地震,日本地震等等,使得越来越多的民众开始关注地震,他们需要快速,及时的获取地震信息。网络的迅速发展使得信息的发布多了一条快速途径。如果发挥Google地图技术和JOPENS系统的各自特点,利用现在流行的B/S(浏览器/服务器)结构,将Google地图数据和地震信息数据结合,那么Google地图在地震信息服务方面也可以表现出出色的效果。使地震三要素信息以更生动的形式展现给地震信息使用者,如果有需要,还可以基于Web服务提供更多的一些相关信息。“广东省地区JOPENS地震速报系统”就是基于以上思考而开发出的一套地震信息发布系统。这套系统的主要特点不仅仅是显示地震目录信息及相关的Google地图信息,更重要的是还能实时更新页面,发出报警,既能以一般的地震信息浏览为目的而使用,也可以当成一套独立的实时地震监测显示系统供地震值班人员使用。

1 系统设计

“广东省地区JOPENS地震速报系统”采用了当今主流的B/S结构。在这种结构下,用户完全不用考虑自己所使用的终端设备和操作系统,无论是台式电脑,平板电脑,智能手机,还是笔记本,亦或windows系统,linux系统,macOS系统等等,用户界面完全通过WWW浏览器实现。浏览器端的主要作用是向服务器请求数据,载入Google地图图片,监听消息,显示和更新界面。之所以采用B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的JavaScript脚本语言和Ajax异步访问技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并且节约了开发成本和部署成本,这是一种全新的软件系统构造技术(见图1)。

图1 广东省地区JOPENS地震速报系统结构图Fig.1 Diagram of system structure

服务器端相当于一个黑盒子,主要的事务逻辑都在这里实现。下面对此进行详细阐述。本系统底层以JOPENS系统为基础。JOPENS系统是一个功能丰富而强大的地震数据实时处理和存储系统,它的功能包括实时数据获取、数据预处理、震相检测、地震定位、数据存储、自动向EQIM速报、处理结果发布等许多功能,同时JOPENS系统也提供了许多接口,我们可以轻松的将其功能扩展做二次开发。这里我们主要调用JOPENS系统的消息服务接口和数据库访问接口。JOPENS的消息服务器是集成了Apache出品的ActiveMQ,它是能力强劲的开源消息总线,符合J2EE规范的消息服务器,同时针对企业级消息应用做了功能的扩充,提供了诸如消息队列集群和分层次主题命名及多主题订阅;而JOPENS数据库使用关系型数据库MYSQL作为数据管理系统。在此我们没有必要理解这两个服务的内部机制,只需要调用接口,获取想要的信息即可。“广东省地区JOPENS地震速报系统”部署在Jetty Web服务器中,它的功能包括:订阅JOPENS消息服务器中的实时触发消息,访问JOPENS数据库,获取地震信息,过滤、筛选、封装地震数据,响应浏览器端的页面请求和向浏览器端发送地震数据。Google地图服务器负责响应客户端对地图数据的请求,它返回的是一张张256×256像素的JPEG格式的图片,在客户端会拼接成一幅完整的地图。本系统服务器端的流程处理为:实时触发消息→访问数据库→过滤,筛选,封装地震数据→发送数据到页面→请求Google地图。即浏览器端向JOPENS地震速报系统请求地震信息,之后浏览器端再根据这些地震信息的地理位置信息向Google地图服务器请求地图数据。最后在浏览器端以友好的方式显示给用户[3]。

2 技术实现

本系统的实现使用了多种语言和技术框架,在浏览器端使用HTML语言,JavaScript脚本语言,Ajax异步传输技术,ExtJs界面框架,ActiveMq消息监听技术和Google地图API(即Google地图应用程序编程接口);而在服务器端使用Java语言作为主要开发语言[4],Jetty服务器作为Web容器[5],Seam作为Web开发框架,JPA用来访问数据库。下面重点介绍本系统如何利用这些技术实现地震信息与Google地图集成在一起显示给用户。

首先是Seam(即Jboss Seam),它是一个Java EE 5框架。Seam框架把JSF与EJB3.0组件合并在一起,以及利用JDK5.0的Annotation技术,从而为开发基于Web的企业应用程序提供一个最新的模式。Seam可以让你把EJB组件直接绑定到JSF页面。我们利用Seam框架订阅JOPENS消息服务器的实时触发消息主题(topic/rts/location),订阅了这个主题,只要JOPENS系统一旦检测到触发信号,本系统就能收到一个字符串,它是一个事件ID号,表示JOPENS系统检测到一个新的事件。通过这个事件ID号就能在JOPENS数据库中检索到一系列的触发事件信息,这是原始信息,并不适于直接显示给用户。原因有三:①某些触发事件不属于广东省地震监测中心的负责范围;②某些触发事件的定位质量没有达到显示条件或是误触发(即由于干扰而触发的事件);③“广东省地区JOPENS地震速报系统”本身也规定了一些显示条件,只有满足这些条件才被允许显示。所以要针对以上三种情况对从JOPENS数据库获取的一系列地震信息做进一步判断和过滤。第一种情况的处理方式为:取得距广东省省界400 km的边界地理信息数据,只选择在这个边界内的触发事件;第二种情况的发生是因为JOPENS实时系统是一套自动处理系统,所以不可避免会有误触发事件的情况发生。而根据广东省地震的特点,再加一些基本的判断,这些误触发事件是完全可能通过程序过滤掉的。比如对定位的深度必须满足一定条件,如过滤掉深度小于50 km的事件(因为广东省的地震绝大部分都是浅源地震),还有将参与定位的台站按震中矩排序,原则上距离震中越近的台站,拾取的震相应该越清晰,定位质量也越高,可是JOPENS实时系统由于噪声干扰,有时能识别出一些远台的震相,近台的震相反而识别不出来,或者没有用近台的震相参与定位。这样的定位,很可能是不准确的。为准确起见这种定位结果也过滤掉。我们只选那些有较多近台参与定位的事件。第三种情况是人为添加的一些条件。比如震级M要大于1.2,只选择那些影响可能较大的事件;对同一个事件如果既有人工分析结果,又有自动定位结果,会优先显示人工分析的结果等等。

图2 地震信息数据处理逻辑Fig.2 Logic of seismic information data processing

当从JOPENS数据库获取数据和对数据完成过滤后,我们用XML语言来对数据进行封装。XML语言(Extensible Markup Language) 即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。XML是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。我们定义的XML标签有:locations(根节点),location(每个location节点存储一个事件信息),id代表序列号,cataId代表目录号,locationCname代表发震地点,lat代表震中纬度,lon代表震中经度,depth代表震中深度,m代表地震震级,originTime代表发震时刻,eventId代表事件号,netCode代表台网代码,eqType代表地震类型,saveTime代表保存到数据库的时间,locaType代表处理类型,分为自动和人工两种。下面是一个XML语言描述的地震信息实例:

至此服务器端已经准备好了数据,供浏览器端访问。当浏览器端请求访问时,会从服务器端得到一些HTML文件,XML文件,js文件,图片文件,音频文件等等。js文件中定义了如何组织显示数据,如何根据地震信息调用Google地图及将地震信息标记在Google地图上。我们重点阐述如何使用Google地图API调用Google地图。

谷歌地图API是通过开放的Internet传输协议,以标准方式定义并提供可被其他应用调用的服务内容,它通过API调用将内容进行整合。目前架构在Web平台上,随着以HTTP为基础的WebAPI的普及,它降低了应用服务整合的门坎。允许开发者在不必建立自己的地图服务器的情况下,将Google地图数据嵌入到网站之中,从而实现嵌入Google地图的地图服务应用,并借助Google的地图数据为用户提供位置服务。还允许开发者利用JavaScript脚本进行应用开发拓展,给地图添加标注和折线及其他地图图层覆盖物和地图,或者响应用户的点击动作,并显示包含内容信息在内的气泡提示窗口。通过Google地图为开发者提供的地图API,可以开发出各种各样有趣的地图Mash-up应用,还可以将不同地图图层加载到应用中,如卫星影像、根据海拔高度绘制的高山和植被地形图、街道视图等,从而帮助开发者打造个性化的地图应用站点。

使用Google地图很简单,只要在网页<head></head>中添加以下内容:

为了使提供给用户的界面更优雅,我们使用ExtJs框架来创建前端用户界面,它是一个与后台技术无关的前端Ajax框架(所谓Ajax就是指一种创建交互式网页应用的网页开发技术)。ExtJs创建的动态界面在浏览器中的显示相当出色,摒弃了以前信息一有更新就刷新整个页面的弊端。利用ExtJs里的面板来来装载地震信息数据和Google地图,同时能够动态的监听更新数据和地图。

3 实现效果

当用浏览器打开“广东省地区JOPENS地震速报系统”网址后,就会弹出系统主页,下图即是主页整体效果图。主页左边为地震目录信息,右边Google地图,Google地图上的小水滴图标与左边的地震目录是一一对应的,点击左边的目录,就会在右边地图对应的小水滴图标处弹出详细信息窗口。

图3 系统主页界面Fig.3 System main page

图4 地震目录列表面板Fig.4 Panel of earthquake catalog list

上图显示的是自2011-03-24~2011-04-20期间,震级M大于等于0.8的地震目录信息,其中包含的信息有震级,发震时刻,处理类型(“自动”表示自动处理的结果;“人工”表示人工处理后的结果),纬度,经度,深度。由于充分利用了ExtJs界面框架,使得地震目录信息的显示界面相当友好,每一项都可以正序或倒序排列,也可以选择性的显示或隐藏某些列的信息。由于系统是实时自动刷新,通常都是先接收到自动信息,所以在“处理类型”那一列有所标识,如果这时地震分析人员对这条目录进行了人工校核,则系统会优先显示人工分析结果。

图5 Google地图面板Fig.5 Google map panle

上图为Google地图面板,其中包含了广东省台网中心监测范围(红色封闭曲线所示),震级图标(不同震级用不同颜色,不同大小的图标区别),地震信息标记,距离测量按钮,地震详细信息窗,地图缩放条,地图类型选择按钮。Google地图会随着地震目录的更新同步更新,具体表现为,每当接收到一个新的地震信息目录,Google地图会自动将地图中心移动到这个最新事件的经纬度处,并且弹出地震详细信息窗。

4 讨论

从以上的实现效果,不难看出,借助Google地图,可以使地震信息的显示更加丰富,同时可以提供多样化的辅助功能,并且使用起来非常方便,只需要一个浏览器,打开就能显示,还可以动态更新地震信息。如果需要还可以添加其他的一些信息,如人口信息,地质地貌信息,为地震应急,地震信息发布提供多样化,可视化服务。目前全国都在使用JOPENS系统,所以我们的这套系统不仅适用于广东省,只要略微修改也可以部署在其他省的地震单位使用。就广东省地区而言,我们主要是提供给各个地震办公室作为实时监测系统使用。当然如果要使更多的用户能够使用地震信息服务系统,必须要有强大的后台服务支撑,否则当同时登陆的用户过多,会造成服务器宕机。Google地图是一家外国的地图服务提供商,最近面临着在中国的许可证获取问题,如果没有取得许可证国内就无法访问。但是国内的地图服务,如天地图,百度地图等都没有给用户提供强大而丰富的开发接口。所以从实现效果上和开发便捷的角度看,用Google地图技术和地震数据信息的集成是最好的选择。

[1]谭庆全,尹东兵.浅谈Google Maps地图数据在地震应急中的应用[J].城市与减灾,2010,6:25-27.

[2]侯建民,刘瑞丰,赵京铁,等.基于WebGIS地震目录数据发布系统研究[J].地震地磁观测与研究,2008,29(2):106-111.

[3]Dejan Bosanac.Activemq in Action[M].MANNING PUBN,2010.

[4]唐伦,唐洪川,吕翊,等.基于J2EE平台的WebGIS应用体系结构[J].微机发展,2003,13(7):57-59.

[5]陈述彭,鲁学军,周成虎,等.地理信息系统导论[M].北京:科学出版社,1999.

Application of Google Map to JOPENS Earthquake Fast Report in Guangdong Province

LIU Jun,CHEN Guimei

(Earthquake Administration of Guangdong Province,Guangzhou 510070,China)

The paper uses the map services provided by Google,taking B/S as the system structures to monitor the message sent by the JOPENS real time system and visit JOPENS database.According to the requirements,the earthquake information are obtained and displayed on the web page.The JOPENS fast earthquake report system,using Google map services,makes the earthquake information more rich and more concrete.This can provide effective and variable data service to departments of earthquake emergence and other public departments.

Google map;JOPENS real time system;B/S structure;Earthquake;Information release

P315.730.5

A

1001-8662(2011)03-0041-09

2011-03-23

刘军,男,1982年生,主要从事地震监测研究.E-mail:duanmu.lj@gmail.com.

猜你喜欢
速报浏览器广东省
广东省铸造行业协会十周年会庆暨第四届理事会就职典礼成功举行
反浏览器指纹追踪
每月速报
每月速报
广东省海域使用统计分析
每月速报
环球浏览器
广东省10年将投1187亿治水
广东省今后5年将投7226亿建高速公路
浏览器