李 垠 左德霖 侯建明 特木其勒 丁文秀 刘 可 张亦梅
(1)湖北省地震局,武汉 430071 2)中国地震台网中心,北京100045)
基于Google Map的地震综合信息服务系统构建研究*
李 垠1)左德霖1)侯建明2)特木其勒1)丁文秀1)刘 可1)张亦梅1)
(1)湖北省地震局,武汉 430071 2)中国地震台网中心,北京100045)
基于Google地图API接口,采用Oracle数据库管理和AJAX、JavaScript技术,进行地震综合信息服务系统的平台搭建。结果表明该系统具有快速、全面、易操作的特点,解决了目前开发GIS平台数据昂贵、系统维护困难等问题,为用户了解震情提供了良好的平台。
Google地图;API;地震综合信息服务系统;AJAX技术;Oracle数据库
Google Map提供3种地图类型:矢量地图,不同分辨率的海量卫星照片,地形视图[1-3]。
空间数据的应用范围十分广阔,对于GIS而言,如果要进行深入的应用,就需要两大支撑体系,一个是数据,另一个是平台,二者缺一不可,因此搭建一套GIS系统不仅要收集大量数据,而且还要搭建复杂的GIS系统平台,面对这样的现状,Google公司推出了Google Map API的方法,即“应用程序编程接口”,是为第三方开发人员提供的接口,利用这个接口,通过JavaScript将 Google地图嵌入到其他的网页中,不必了解其内部机理,就可以使用部分地图功能[1]。
在Google Map API的推出之后,又出现微软Bing MAP API和百度地图的API等,可见API技术已成为当今热门网络应用之一。API技术推广的同时也推动了Google地图的发展,充分利用Google MAP的数据资源,实现具有WEBGIS功能的地图发布信息窗口。
本系统采用 Asynchronous JavaScript and XML技术(简称AJAX技术)。它以基于Web标准的XHTML+CSS的方式来表示,使用XMLHttpRequest对象向服务器提出请求并处理响应,它的优点是在不更新整个页面的前提下维护数据,使得Web应用程序能更为迅捷地回应用户动作,而且可以仅向服务器发送并取回必需的数据[2,4]。它使用SOAP或其他一些基于XML的Web Service接口,并在客户端采用JavaScript处理来自服务器的响应,所以在服务器和浏览器之间交换的数据量大为减少,响应速度更快,同时很多的处理工作可以在发出请求的客户端机器上完成,使Web服务器的处理时间也相应减少。
地震综合信息服务系统选用了Oracle数据库管理系统,在集群技术、高可用性、商业智能、安全性、系统管理等方面都优于其他数据管理系统。Oracle应用服务器是J2EE认证的、最轻、最快、最具伸缩性的应用服务器,提供了企业门户软件、无线支持、高速缓存、轻量级J2EE引擎、商务智能、快速应用开发、应用与业务集成、Web服务等多种应用开发功能,形成完整的电子商务应用开发和部署环境。使用了Oracle应用服务器可以通过升级软件来取代升级硬件,大大节省了基础设施的成本。同时,又可用于快速开发使用Java和XML语言的互联网应用和Web服务,支持任何语言、任何操作系统、任何开发风格以及最新的互联网标准。提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。
Oracle数据库支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等;能在C、C+ +等主语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵;可以加上其他前台开发工具如 POWER BUILD、SQL FORMS、VISIA BASIC等,可以快速开发生成基于客户端PC平台的应用程序,并具有良好的移植性;提供了新的分布式数据库能力;可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。
Google Maps API是 Google提供的一个基于JavaScript技术的API。其本身对开发环境要求并不高,只需要一个支持Google Maps API的浏览器即可,将Google地图扩展作为网络应用后还需要服务器端程序的支持,因此配置一个合理的开发环境即可[4]。
Tomcat服务器是由一系列可配置的组件构成,其核心组件是Catalina Servlet容器,它是所有其他Tomcat组件的顶层容器。Tomcat的组件在/conf/ server.xml文件中进行配置,每个Tomcat的组件在server.xml文件中对应一种配置元素。Tomcat server提供全面的安全体系结构,其安全框架是依照JSP安全规范定义的,包括用户级和组级访问控制列表、基于密码的隐私权和用户验证、域、数字签名以及其他基于标准的安全措施。这一安全结构让用户安全解决方案能够热融入到Tomcat Server的安全框架中,同时JSP应用程序开发者也可以很容易地使用此框架提供的服务保护自己的应用程序。
地震综合信息服务系统技术的关键是Google Map的API技术,通过JavaScript和AJAX将Google地图中的大量实用工具嵌入到自己研发的网页中,可以创建功能全面的地图应用网站。系统的后台是用JAVA语句编写,调用Oracle数据库。如果数据库中存放了矢量数据,则需要通过ArcSDE和ArcIMS,将调用的本地Oracle数据库中的地图数据,和Google Map的地图资源进行整合,将地震综合信息显示在自己开发的网站中为用户提供服务(图1),整体采用B/S(浏览器/服务器模式)结构。客户端只需通过IE浏览器就可以实现系统功能,总的来说大大降低了开发成本。
图1 地震综合信息服务系统框架Fig.1 Framework of comprehensive earthquake information service system
客户端的实现主要是利用JSP内嵌Google Map API的方式实现地图信息的基本浏览功能,用Servlet作为后台的主控逻辑程序,利用Oracle数据库管理地震信息的数据内容,用Tomcat作为Web发布服务器,Servlet是一种服务器端的Java应用程序,独立于平台和协议,可以生成动态的Web页面。它承担了客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web服务器内部的服务器端的Java应用程序,由Web服务器进行加载并支持Servlet的Java虚拟机[2,4]。
在Oracle数据库中创建了空间表用来存放地震行业属性数据。NewEarthquake数据表记录最新地震相关信息,包括地震三要素(时间、地点(经纬度)、震级);采用Java语言用connect的语法连接数据库
然后调用SQL语句选择符合条件的相应字段数据如 SELECT=quot;SELECT ID,TIME,LAT,LON,DEPTH,MS,LOCATIONquot;。
Google地图的API提供了一个JavaScript库,通过申请密匙key,它会自动载入地图所需的js文件,利用提供的编程接口,将Google Maps服务器上的地图图片和数据下载到客户端并正确显示,从而在其地图的基础上显示自己定义的地标点等,实现地震综合信息服务的目的。Google Map API的地图的显示、标点、划线等操作包含59个类,空间、叠加层等包含18个类,大大满足了地震综合信息服务系统的开发的需要[2]。
GMap是API的中心类,作用为在给定的容器DIV中创建地图。可选参数opts.size可以设置地图大小,默认使用容器DIV的大小。
用initialize()函数加载地图程序到地震综合信息服务系统的页面中,并设定好地图的缩放级别和透明度等,同时调用TiledMapServiceLayer类在程序中加入缓存,可用不同数据源的地图进行服务,比如ArcGIS Server的地图服务,Google Map的地图,或者是Virtual Earth的地图。用gmap类中的addMap-Type()添加地图类型或者用removeMapType()去除某种地图类型,在本系统中添加了G_PHYSICAL_ MAP具有自然特征(如地形和植被)的地图和G_ HYBRID_MAP混合型地图。用GLatLng()函数设置地图的中心坐标位置,用setCenter()函数来设置其地图中心点和缩放级别如下:gmap.setCenter (GLatLng(30.95,112.36),7,G_PHYSICAL_ MAP)。
同样利用API接口gmap类的addControl()添加Google Map的控件,包括地图左侧“鱼骨”控件和比例尺、右侧的地图类型按钮(图2)。
图2 Google地图显示Fig.2 Display in Google map
如gmap.addControl(new GLargeMapControl())加载左上侧大“鱼骨”,包含方向、缩放按钮和缩放级别控制滑块;gmap.addControl(new GMapTypeControl())加载右下侧地图类型按钮;gmap.addControl (new GScaleControl())加载左下侧的比例尺。
将从Oracle数据库中提取的经纬度坐标在地图上进行标注。首先定义一个经纬度点GLatLng和标注对象GMarker,根据震级的大小选用相应的标注图标,然后用GMap类的addOverlay()在地图上加入标注,源代码如下:
并在这个标注点上添加通过单击形式可以产生的信息浮窗提示,选用marker.openInfoWindowHtml (html)函数即可实现。
GMap类提供了一个打开quot;信息浮窗quot;的方法,可以在地图上以浮动窗口模式显示HTML内容,但一次只能打开一个信息浮窗。利用事件监视器。在程序中加入动态的内容,每个实例提供一些指定的事件,利用静态方法GEvent.addListener监视这些事件。如下源代码,在用户点击地图中震中符号的时候显示一个警告:
将Google Map应用于地震综合信息服务系统弥补了传统的单一的GIS平台的不足。Google公司提供了Google Map地图数据的共享,大大降低了GIS开发的难度和费用,促进了GIS行业的快速发展,受到整个社会的关注。
对地震综合信息平台开发的研究可以说是对地震领域应用较为全面的研究。通过Google Map API的应用,拓宽了地震专业的应用研究领域范畴,具有较强的现实意义。
地震综合信息服务系统的大致框架已经初步搭建完成,目前可以显示Google Map的地图资源;读取Oracle数据库中的震情信息,将地震信息显示到网页的信息栏并标注在地图界面上(图3);显示在相同比例尺的条件下矢量地图(图4)、卫星影像图片(图5)及混合型地图(图6)的震中分布情况。
图3 界面显示Fig.3 Display of interface
图4 矢量地图Fig.4 Vetcor map
图5 卫星影像图片Fig.5 Satellite images
图6 混合地图Fig.6 Hybrid map
下一步需要对地震信息综合服务系统进行完善:在数据库中添加其他地震相关信息,包括活动断裂信息、滑坡泥石流信息、湖北台网信息、地震带信息、强震目录信息、各地市县的地震办(局)的相关信息,以及申请用户的权限的管理信息等;将各类信息根据用户的级别和需求显示在地图中;通过地震灾害模型计算,在地图中显示地震烈度图和地震响应场[6],为今后震情趋势判定提供快速而详尽的背景资料;作为公众信息发布平台,为防震减灾宣传工作提供一定的技术支持。
地震综合信息服务平台的搭建充分利用JSP平台框架结构的开放性、标准性;利用Google Map API接口,简便的开发地图服务功能;利用分布式存储数据库集中管理各类地震相关数据内容;运用强大的空间信息资源实现了地震信息综合服务的有效管理,达到了用户和管理员之间对地震相关数据资源的整合和共享、交流的目的。完善后的地震综合信息服务系统为相关领导和部门、地震工作者提供了有效、快速、全面的预测依据和技术支持,为公众提供一个震情信息发布平台。
1 陈育春.Google Maps API开发大全[M].北京:机械工业出版社,2010.
2 地震信息发布系统.http://www.ceic.ac.cn/index.jsp[EB/OL].(Earthquake Information Release System.http://www.ceic.ac.cn/index.jsp.
3 苏娟.基于Google Map API地震信息发布系统的研究与实践[D].首都师范大学,2009.
4 Google Maps API官方网.httP://WWW.google.com/apis/ maps/[EB/OL].(Google Maps API Official website.http://WWW.google.com/apis/maps/.
5 ESRI中国社区.http://bbs.esrichina-bj.cn/ESRI/ viewthread.php?action=printable&tid=45537[EB/OL].(ESRIChina.http://bbs.esrichina-bj.cn/ESRI/ viewthread.php?action=printable&tid=45537[EB/OL])
6 周峰的博客.http://www.cnblogs.com/andrewzhou/archive/2009/07/08/1519120.html[EB/OL].(Zhou Feng’s blog.http://www.cnblogs.com/andrewzhou/archive/ 2009/07/08/1519120.html[EB/OL])
RESEARCH ON COMPREHENSIVE EARTHQUAKE INFORMATION SERVICE SYSTEM BASED ON GOOGLE MAP
Li Yin1),Zuo Delin1),Hou Jianming2),Temuqile1),Ding Wenxiu1),Liu Ke1)and Zhang Yimei1)
(1)Earthquake Administration of Hubei Province,Wuhan 430071 2)China Earthquake Networks Center,Beijing100045)
On the basis of the interfaces of Google Maps API,the comprehensive earthquake information system is built with Oracle database managerment,AJAX and JacaScript techonology.The results show that the developed method is comprehensive and fast,easy to use,and the following problems,such as expensive GIS data and hard system maintenance are solved with the system.It is a good platform for understanding the earthquake situation to the user.
Google maps;API;comprehensive earthquake research information service system;AJAX;Oracle database
1671-5942(2011)Supp.-0118-05
2010-07-07
地震应急青年课题(CEA_EDEM-201010);中国地震局地震研究所所长基金(IS200946085)
李垠,女,1979年生,助理研究员,硕士,主要从事地震应急技术保障及信息管理工作.E-mail:yubai1979@163.com
TP335
A