基于百度地图API的测震台网电子地图服务系统的设计与实现*
2014-07-05董一兵张环曦
胡 斌,董一兵,2,刘 新,2,王 想,张环曦
(1.河北省地震局,河北石家庄050021;2.中国科学技术大学地球与空间科学学院,安徽合肥230026)
0 引言
近年来,河北地震测震台网的规模不断扩大、台站密度不断增加,数字遥测地震台站的数量已达53个,养护维修任务十分繁重。目前,对台站信息的管理主要借助于纸质档案和电子表格。对于台网维护人员来说,记忆每个台站的地理位置和行车路线是一个非常繁重的任务,对于未曾去过的台站,经常需要借助网上免费的电子地图应用程序,或者汽车上配备的导航仪。本文旨在为测震台网开发一套专用的在线电子地图服务系统(杨昆,许泉立,2006;李东平等,2006;史榕等,2008),为管理员用户提供基于B/S模式的台站基础信息管理、台站电子地图服务和系统用户管理等功能,为访客用户提供台站电子地图服务和个人账户管理等功能。
系统经过部署之后,经过授权的用户就可以随时随地通过计算机的Web浏览器远程登录系统,查询台站的具体位置,或者使用路线规划功能查询去往目的台站的最佳路线。这将大大减轻台网维护人员的工作压力,使他们可以更加关注维护工作本身,从而提高工作效率和质量。
1 需求分析
1.1 功能规格
系统包括两类不同权限的用户:管理员和访客。对于管理员,系统将提供3项基本功能:(1)台站基础信息管理:支持对台站记录的增加、删除、修改、查询、打印等操作;(2)台站电子地图应用:支持民用电子地图的通用功能,如平移、缩放、查询、路线规划等;(3)系统用户管理:支持对用户记录的增加、删除、修改、查询等操作。对于访客,系统将提供台站电子地图服务和个人账户管理两项基本功能。
1.2 性能需求
系统应满足下列性能需求:
(1)良好的用户界面,减轻操作人员的工作负担。
(2)良好的运行效率,能够达到提高工作效率的目的。
(3)良好的可扩展性,适应将来功能扩展的需求。
(4)良好的灵活性,适应台网配置的变化。
(5)良好的安全性,防止对重要内容的非法访问。
1.3 应用环境
系统在B/S模式下工作,服务器端和客户端通过计算机网络进行通信。系统的正常运行对计算机的网络环境、硬件环境和软件环境具有一定的要求。
(1)系统运行的网络环境
服务器端部署在测震台网中心的一台Web服务器上,通过网络调用百度地图服务器的API来创建电子地图,并为本地及远程的客户端提供服务。客户端利用Web浏览器通过网络访问这些服务。系统的拓扑结构如图1所示。
图1 系统拓扑结构图Fig.1 Topological structure of the system
(2)系统运行的硬件环境
客户机使用普通PC即可,对于服务器有如下要求:
CPU:P4 2.0 GHz或以上兼容型号;
内存:1 GB或以上;
网卡:千兆网卡;
硬盘:80 GB.
(3)系统运行的软件环境
服务器端需要搭建下列软件环境:
操作系统:Windows XP
虚拟机:jre 1.6
数据库:MySQL 5.1
Web服务器:Tomcat 6.0.35
浏览器:IE 6.0或以上兼容类型
2 系统设计
2.1 界面设计
根据用户的不同权限,我们为系统设计了管理员界面和访客界面,以提供不同内容的服务。管理员能够使用的服务包括:管理台站基础信息、使用台站电子地图和管理系统用户。访客能够使用的服务包括:使用台站电子地图和管理个人账户。
2.1.1 管理员界面设计
(1)登录界面:通过用户名和密码实现用户登录,并判断用户的权限。
(2)管理员主界面:提供了“台站基础信息管理”、“台站电子地图服务”、“系统用户管理”等功能的链接。
(3)台站管理:包括“台站列表”、“增加台站”、“删除台站”、“修改台站”、“查询台站”、“台站排序”和“另存为”等菜单项。
(4)台站电子地图:支持民用电子地图的通用功能,如平移、缩放、路线规划等。
(5)系统用户管理:包括“用户列表”、“增加用户”、“修改用户”、“删除用户”、“查询用户”等菜单项。
2.1.2 访客界面设计
(1)登录界面:通过用户名和密码实现用户登录,并判断用户的权限。
(2)访客主界面:提供了“台站电子地图应用”、“个人账户管理”等功能的链接。
(3)台站电子地图:支持民用电子地图的通用功能,如平移、缩放、查询等。
(4)个人账户管理:包括“修改密码”、“注销登录”等菜单项。
2.2 数据库设计
我们选择MYSQL数据库作为数据库管理系统。数据库中设计了下列表格:①台站基础信息表,用于存储台站的基础信息,表结构如表1所示;②系统用户信息表,用于存储系统用户的信息,表结构如表2所示。其中,用户的权限分两种:管理员和访客。
3 系统实现
3.1 开发环境
系统在下列软件环境中进行设计开发:
操作系统:Windows XP SP3
JDK:SDK 1.6.0
IDE:Eclipse 3.3.5+MyEclipse 6.0.1
Web服务器:Tomcat 6.0.35
数据库:MySQL 5.1
3.2 开发技术
采用Java EE的MVC框架予以实现。MVC是3个单词的缩写,分别为:模型(Model)、视图(View)和控制(Controller)(MSDN,2012)。MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。View层用于与用户的交互,通常用JSP来实现。Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。在本系统中,视图层采用JSP实现,模型层采用JavaBean实现(Eric,2010)。
表1 台站基础信息表Tab.1 Basic information of stations
表2 系统用户信息表Tab.2 Information of the system users
对于电子地图的开发,我们选择的是百度地图所提供的 1.3版 Javascript API(百度地图,2012)。百度地图API是一套由JavaScript语言编写的应用程序接口,能够在网站中构建功能丰富、交互性强的地图应用程序,它不仅包含构建地图的基本接口,还提供了如本地搜索、路线规划等数据服务。目前,应用比较广泛的民用电子地图产品主要有百度地图、谷歌地图、必应地图等,这些产品厂商大都提供了免费的在线地图和离线地图(维基百科,2011)。我们的选择主要是基于以下几种考虑:一是免费。百度地图API面向公众服务类网站是免费的,只要接受使用条款的约束(如不得直接存取、使用内部数据,必须保留百度版权信息等),就可以在网站上显示百度地图图片,进行地点搜索、路线查询和交通流量显示等操作;二是自动更新。百度地图维持半年一次批量数据更新和不定期的局部数据更新,免去了定期手动下载安装离线地图包的烦恼;三是快捷。百度地图在官网上提供了详实的开发指南和示例程序,用户只需要调用API即可实现丰富的功能。四是可靠,百度地图API拥有国家测绘局颁发的互联网地图运营资质。百度地图API的这些特点使其非常适合用来搭建小型的专用WebGIS平台(杜传明,2011)。
3.3 开发路线与典型界面
开发路线可分为以下几个主要阶段:
(1)利用Java EE技术搭建软件的整体框架(James et al,2007)。使用JSP技术设计前台页面(管理员主界面如图1所示),使用Java语言编写后台程序,使用DAO方式来处理页面与数据库的连接。
图2 管理员主界面截图Fig.2 Screenshot of the administrator main interface
(2)在页面中调用API生成地图。百度地图API采用Javascript语言编写,Javascript是一种广泛用于前端开发的脚本语言(David,2011)。将以下代码嵌入页面并创建一个新的地图对象map即可生成在线地图:<script src=“http://api.map.baidu.com/api?v=1.3”type=“text/javascript”></script>。之后,可以使用 map.add-Control()方法为地图添加控件,以增强地图的功能。
(3)在地图上添加台站应用功能。从数据库中提取台站的经纬度信息,并以添加标注的方式添加在地图上,就完成了台站的动态加载。用户可以通过台站基础信息管理功能对台站的相关信息进行修改,系统将自动更新地图上的台站参数,如名称、位置、详情等。这加强了系统的可维护性。图2和图3分别是台站详情界面及台站卫星视图界面的截图。
图3 台站详情截图Fig.3 Screenshot of station details
图4 台站卫星视图截图Fig.4 Screenshot of station satellite view
(4)对页面进行修饰和美化,使界面更加友好。
4 结语
本文使用Java EE技术开发了B/S模式的测震台网专用电子地图服务系统。Java EE技术的引入大大增强了系统的可维护性,百度地图API的应用使得开发过程变得简单快捷。通过一段时间的应用,该系统的界面比较友好,操作简单快捷,总体上达到了最初的设计要求。在应用过程中,切实地减轻了台站维护人员的工作压力,提高了他们的工作效率,证明系统具有良好的推广应用前景。由于人力、物力、财力的限制,目前的系统仍存在一些不足,仍有很大的提升空间。而且,百度地图及其API也在持续地更新和发展,因此,本系统仍有很大的上升空间。将来,我们将在应用过程中,不断发现和修正系统缺陷,扩展系统功能,优化系统性能,使其适应台网日益发展的新需要。
百度地图.JavaScript API v1.3[EB/OL].(2012-02-29)[2013-07-11].http://developer.baidu.com/map/jshome.htm.
杜传明.2011.百度地图API在小型地理信息系统中的应用[J].测绘与空间地理信息,34(2):152-156.
李东平,赵锦慧,沈晓健,等.2006.基于G 1 S技术的浙江省地震应急指挥演练系统[J].地震研究,29(3):290-293.
史榕,许惠平,陈华根.2008.三维虚拟WebGIS在防震减灾中的应用研究[J].地震研究,31(2):193-196.
维基百科.电子地图服务[EB/OL].(2011-11-07)[2013-07-11].http://zh.wikipedia.org/wiki/电子地图服务.
杨昆,许泉立.2006.基于ArcIMS的城市地震地理信息系统的设计与实现[J].地震研究,29(1):72-75.
David F..2011.JavaScript:The Definitive Guide[M].California:O'Reilly Media,Inc.
Eric J.,Debbie C.,Ian E.,et al.2010.The Java EE 6 Tutorial:v.1:Basic Concepts[M].New Jersey:Prentice Hall.
James L.,Weaver,Kevin Mukhar,et al.2007.Beginning J2EE 1[M].From Movice to Professional Press.
MSDN.ASP.NET MVC.[EB/OL].(2012-03-13)[2013-07-11].http://msdn.microsoft.com/zh - tw/library/dd381412(v=vs.108).aspx.