李 垠 左德霖 侯建明 特木其勒 丁文秀 劉 可 張亦梅
(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