基于Delphi+Google Map Api的地震信息显示平台的设计与应用
2013-01-27陈向军上官文明
陈向军,上官文明
(1.新疆维吾尔自治区地震局,新疆 乌鲁木齐 830011)
基于Delphi+Google Map Api的地震信息显示平台的设计与应用
陈向军1,上官文明1
(1.新疆维吾尔自治区地震局,新疆 乌鲁木齐 830011)
地震信息显示软件将Google Maps API技术与Delphi7.0开发环境结合,脱离了Google Maps Api技术在嵌入式网站服务器上的开发,相对避开了API密钥的申请和使用限制,实现了中国地震信息网和美国地震信息中心2个网站的震情数据的实时显示,并增设了全球震情动态和震情报警功能,达到虚拟地震台网功能。
Delphi;Google Map Api;地震信息;显示平台;设计
Google Maps API是Google对外提供的地图服务应用程序接口。笔者在Delphi7.0开发环境下开发地震信息显示平台软件,结合WebBrowser组件的特点,利用JavaScript脚本语言将“中国地震网—专业地震信息网”和National Earthquake Information Center-USGS(美国地震信息中心)2个网站的全球实时震情信息展示在Google Maps服务中,同时增设了全球震情动态和震情报警功能。用户利用Google Maps服务提供的行政区地图、混合卫星图、卫星图、地形图、3D地球图等,可及时了解震中各类地理信息,十分便捷。
1 关键技术
1.1 Google Maps API概述[1-5]
Google Maps API开发于2005年,它为开发人员提供了利用简单的JavaScript进行自主开发地图应用的强大功能。可实现以下操作:①基本的地图操作,包括地图移动、缩放、拖拽、滚轮操作等。②实用的地图控件及事件响应,包括地图类型切换、地标、气泡窗口等。③强大的空间分析能力,包括折线和多边形的勾画、实地名与经纬度转换、路径属性计算等。④方便地获得地图资源,并享受最新地图更新信息,可根据需要添加和管理自身的地理信息数据。
Google Maps API有很多优点,作为网站开发时,需要在Google网站上申请API密钥;而作为独立软件开发时,如与Delphi开发环境结合后,相对避开了API密钥的申请和使用限制等。
1.2 JavaScript语言
JavaScript是一种广泛用于客户端Web开发的脚本语言,是完全面向对象的。Google Maps API就是Google提供的一个基于JavaScript的函数或是类库。用JavaScript进行Google Maps API的调用,实现Google地图的行业化和地图辅助功能。
1.3 Delphi开发环境
Delphi是由Borland公司开发的程序设计工具,是面向对象的可视化编程工具,具有快捷方便的开发环境,灵活简捷的编程语言以及功能强大的组件技术。其能够与Windows系统应用程序紧密结合。
2 软件结构设计
根据“中国地震网—专业地震信息网(http://www.ceic.ac.cn/)”和“美国地震信息中心(http://earthquake.usgs.gov/earthquakes/recenteqsww/Quakes/quakes_all.php)”2个网站发布的全球实时震情信息数据,利用Delphi7.0结合 Google Maps API技术对网站震情数据进行二次开发,建立虚拟地震台网平台软件(地震信息显示平台),与网站数据保持同步,及时在本软件主界面的Google地图中显示最新震情,同时增设了震情动态、震情报警等功能(见图1),满足互联网用户在不同地域实时了解震情信息的需求。
2.1 软件原理
软件平台在设计中充分考虑使用地震信息网站(权威)的实时数据(见图2)。开发中首先从地震信息网站读取网页源代码,再使用字符串截取算法分别提取最新地震事件参数(发震时刻、经度、纬度、震源深度、震级和参考地名),并将地震事件参数写入本地数据库。然后,从本地数据库分别读取最新地震事件参数和历史地震事件参数,并将结果标注在软件主界面WebBrowser1组件的Google地图上,最终实现震情信息的实时显示。
图1 参数设置
图2 软件工作原理
2.2 Delphi和Google Maps Api的结合
在Delphi7.0开发环境中用到的组件有:IdHTTP、WebBrowser、IdLogDebug、IdAntiFreeze 和 Timer。WebBrowser组件(关键组件)是一个浏览器组件,可以显示一个指定地址的网页、设置网页打开时的主页以及对网页进行相关的操作,其中包括可以执行JavaScript脚本代码。程序开发中,首先在Delphi7.0下创建一个工程项目,在主界面窗体上添加WebBrowser1、IdHTTP1、WebBrowser1、IdLogDebug1、IdAntiFreeze1、Timer1(多个)组件,同时使用如下程序代码嵌入Google Maps服务,并初始化地图。
利用字符串截取算法,从网页源代码字符串变量中截取地震事件的参数(发震时刻、经度、纬度、深度和参考地名),并将结果写入本地地震事件目录数据库(如Access、SQL Sever等)。将最新地震事件添加到WebBrowser1组件上的Google地图中,关键代码如下:
Function TMainForm.j1(j1: string): Boolean;
//执行WebBrowser1组件网页脚本的函数
2.3 Google地图地震信息的显示
本软件属于绿色软件,无需安装,启动运行效果如图3所示。运行后,软件实时自动地从中国地震信息网、美国地震信息中心网(USGS)2个网站获取最新震情参数,并将结果显示在Delphi下WebBrowser组件的Google地图上。
图3 地震信息显示效果图
3 结 语
地震信息显示软件实现了Google Maps Api技术与Delphi7.0开发环境的结合,实现了中国地震信息网和美国地震信息中心2个网站的震情数据的实时显示,增设了全球震情动态和震情报警功能,达到了虚拟地震台网功能。本软件完全具备独立使用功能,可有效地向市县级地震局、应急部门、有人值守国家级地震台和热心地震事业的社会人士提供服务。
[1] 陈囤固,简季.Google Maps组件二次开发与应用[J].地球信息科学,2008,12(6):90-95
[2] 孙晓茹,赵军.GoogleMaps API在WebGIS中的应用[J].微计算机信息,2006,22(7):224-226
[3] 江宽,龚小鹏.GoogleAPI开发详解:GoogleMaps与GoogleEarth双剑合璧[M].北京:电子工业出版社,2008
[4] Google地图API开发技术文档资料[EB/OL].2010-05-06,http://code.goog|e.com/intL/zh-CN/apis/maps/documentation/in—dex.htm1.
[5] 张孝祥,张红梅.JavaSefipt网页开发:体验式学习教程[M].北京:清华大学出版社,2004
[6] Google Maps API中文同步文档[EB/OL].2010-04-15,http://www.codechina.org/doe/google/gmapapi
[7] 张增强. 突破Delphi7.0 编程实例五十讲[M]. 北京: 中国水利水电出版社,2002
[8] 杨志国, 王小琼, 李世姣. Delphi应用程序开发精彩实例[M].北京: 机械工业出版社,2003
Development and Application of Seismic Information Display Platform Based on Delphi+Google Map Api
byCHEN Xiangjun
Seismic information display software realized that Delphi 7.0 combines with technology of Google Maps Api. It broke away from the development of Google Maps Api in the embedded Web server, and relatively avoided applying for API secret key and using restrictions. Also it realized real-time seismic data display of Web sites(China earthquake information Web and National Earthquake Information Center-USGS),and added the functions of global seismic trends and seismic alarm,reached the functions of virtual seismic net.
Delphi,Google Map Api,seismic information,display platform,developing
P208
B
1672-4623(2013)02-0031-05
10.11709/j.issn.1672-4623.2013.02.010
2012-08-30。
项目来源:新疆地震科学基金资助项目(201207)。
陈向军,硕士,工程师,现从事地震观测和软件开发工作。