王 琦 刘媛媛 万 庆 陈文学 穆祥鹏
摘要:南水北调中线工程是我国最大的调水工程,其干线工程沿线建筑物众多,运行工况复杂。开发南水北调中线干线工程WebGIS系统能够作为工程调度运行的管理平台,提高系统运行调度的信息管理水平。此外,该系统可在Internet发布工程地图信息,供社会公众浏览、查询,更好地为社会经济服务。介绍了南水北调中线干线工程的WebGIS系统,该系统是根据南水北调中线工程的特点采用Java为语言和Ajax技术以服务器动态缓存地图的形式开发的。南水北调中线干线工程WebGIS系统以ArcIMS9.2作为地图引擎,Oracle10g为数据库管理软件,Tomcat5.0Web服务器。由于开发过程中采用了地图瓦片存储技术,客户端在浏览的时候直接加载生成好的地图图片,从而提高了浏览速度,也减轻了服务器的负荷。
关键词:南水北调中线; WebGIS;信息平台;Ajax;地图瓦片
中图分类号:TP391;TV68文献标识码:A 文章编号:1672-1683(2009)05-0028-05
Development and Application on WebGIS of the Middle Route of South-to-North Water Diversion Project
WANG Qi1,LIU Yuan-yuan2,WAN Qing3,CHEN Wen-xue1,MU Xiang-peng1
(1.China Institute of Water Resources and Hydropower Research,a. The Department of Hydraulics;
b. The Department of Water Hazard Research,Beijing 100038,China;2.Institute of Geographic Sciences and Natural Resources Research,CAS,Beijing 100101,China;)
Abstract: The Middle Route of South-to-North Water Diversion Project,with many buildings and being operated under complex conditions,is the largest water diversion project in China. Developing WebGIS for this project can not only provide a platform for operation and management and improve the information management,but also provide project map on the Internet to the public for browsing and inquiry. A WebGIS system is introduced,which developed by Java language,and the map of the project is presented by Ajax technology in the form of server dynamic buffer map. ArcIMS9.2 is used as map engine,Oracle10g as database management tool,and Tomcat5.0 as web server software. A key technology,map tiles technology,is used in this system. Since the map tiles of the project are generated previously in the server,the clients can browse the map of the project quickly.
Key words: the Middle Route of South-to-North Water Diversion Project;WebGIS;infomation platform;Ajax;map tiles
1 引言
随着社会经济的发展、人口的增长及城市化进程的加快,人们对水资源的需求量越来越多,加之水资源时空分布不均,使得许多地区尤其是一些大中型城市都出现了水资源短缺的问题,严重制约着社会经济的发展。修建大型长距离调水工程是调节水资源时空分布不均,解决水资源供需矛盾的最有效、最直接的手段。
跨流域调水工程是一个复杂的系统工程,涉及到社会、经济、环境、地质、水力学、调度控制等一系列复杂的技术问题。为了保证“安全、可靠、经济”输水,实现水资源的优化配置,需要研究分析调水工程自动控制技术、工程模拟仿真技术、工程风险评估与应急响应技术,对某些工程还要研究冰期输水调度及冰情控制技术等。
南水北调中线工程从加坝扩容后的丹江口水库陶岔渠首闸引水,经唐白河流域西部过长江流域与淮河流域的分水岭方城垭口,沿黄淮海平原西部边缘,在郑州以西李村附近穿过黄河,沿京广铁路西侧北上,可基本自流到北京、天津,局部采用泵站加压管道输水方式。工程总长约1 432 km(含天津干渠),穿越大小河流686条,沿线设61个节制闸控制渠道的输水过程,由88个分水口门向用户供水,51座退水闸避免渠道水流漫溢。对于这样一个大型跨流域的调水工程,采用现代信息技术,提高信息采集、传输、处理的时效性和自动化水平,成为工程管理发展的新趋势。作为一门新兴信息技术,地理信息系统适合分布式多数据源的数据管理,可与南水北调中线干线工程控制系统、模拟仿真系统、风险评估与应急响应系统,以及其他系统耦合形成信息收集、处理的管理平台。
地理信息是一种重要的分布式信息资源,是解决人口、资源、环境和灾害等重大社会可持续发展问题,以及促进社会经济持续、快速和健康发展的基础信息数据。所以,在地理信息领域,如何发布信息,建立信息的共享技术和开放技术就显得尤为重要。随着Internet技术的不断发展和人们对GIS需求的日益增长,利用Internet在Web上发布空间数据,为用户提供空间数据浏览、查询和分析的功能,已经成为GIS发展的必然趋势。于是,基于Internet技术的地理信息系统——WebGIS就应运而生。WebGIS拥有广泛的应用范围,灵活的操作方式。建立南水北调中线干线工程WebGIS系统,在Internet上发布地理数据,管理工程数据,为实现水资源优化配置提供技术手段,为管理决策提供支持平台,同时实现调水信息的网上的直观、图像化发布,提高公众的参与性,正是适应了工程管理发展新趋势,也体现出采用现代信息技术改造传统管理模式的目的。
韩念龙等[1]基于ArcIMS开发网络化的地理信息系统,实现长春市石头口门水库分布式监测点的水质监控与管理。系统实现了包括地图浏览、地图查询以及地图空间分析等基本GIS功能;同时通过水质监测点动态更新、水质监测预警可视化以及水污染动态模拟等关键功能,了解水质监测点的属性信息,为管理部门提供决策依据。段雪辉[2]以汾河灌区为研究对象,总结了目前汾河灌区灌溉管理系统存在的不足,分析将WebGIS应用到灌区管理信息系统的优势,提出了将地理信息系统与管理信息相结合的方案,并设计了系统的功能组成。丁继红等[3]采用ArcIMS,利用Servlet、JSP、动态Web等技术,建立了基于WebGIS的粮食作物品种动态智能系统,实现了粮食作物区域的信息发布。刘诗桥[4]实现了WebGIS在森林防火中的应用,并与林业管理地理信息系统GIS(Client/Server模式)组成了完整的林业管理地理信息系统。刘东民等[3]在黑龙江省防汛指挥决策支持系统项目中实现了基于ArcIMS平台的系统集成,在功能集成、数据集成、界面集成和平台集成等方面都采用先进技术,取得了良好成果。
WebGIS作为一种新兴技术,在许多领域得到了应用。归纳起来主要有以下优点。
①无需不断升级客户端的硬件设备。与传统的基于桌面或局域网的GIS相比,由于其客户端软件的更新,不断地提高了对计算机性能的要求;而采用Browser/Server模式的WebGIS,系统主要运行在服务器端,客户端不需要购买或升级硬件,在相当程度上拓展了计算机的生命周期。
②简化了客户端的安装、配置。由于Browser/Server是建立在广域网的基础上,有比Client/Server更大的适应范围,客户端只需安装操作系统和通用浏览器即可,不必安装特别的应用软件、数据库接口等,有效节省了人力和物力。
③显著降低了系统开发的费用。Browser/Server模式允许在不依赖客户端系统平台的情况下,快速应用开发,并且应用完全在服务器端(或中端事务逻辑)执行,客户端通过有效的网络协议,向服务器发送请求,中端事务逻辑系统将请求的信息返回到客户端显示。
④大大减少系统维护的工作量。由于客户端不再担负数据访问和复杂数据计算等任务,只负责显示或简单的计算,而把事务逻辑处理放在服务器端,从而充分发挥了服务器的强大作用,这样一方面大大降低了对客户端的要求,另一方面也把技术人员从繁重的维护升级工作中解脱出来,使维护人员不再为维护工作奔波于各个客户机之间,每一次的软件升级只需要更新服务器端程序即可。
本文介绍了南水北调中线工程WebGIS平台系统的开发方式、实现模式和实现方式,并描述了系统的架构组成、运行软、硬件环境及数据库设计。简要介绍了系统功能。最后介绍了开发过程中用到的两项关键技术。以期为WebGIS开发领域的研究提供参考[6]。
2 WebGIS相关技术
2.1 WebGIS平台开发方式
目前WebGIS平台开发方式有以下几种。
①直接使用现有的WebGIS平台进行二次开发。比如ArcIMS,MapXtreme,SuperMapIS。这种开发方式只需要编写客户端功能代码。开发过程相对简单,功能比较强大,缺点是平台价格较高。
②利用MapObjects,MapX,SuperMap等组件提供GIS功能,自己开发WebServer,封装成类似ArcIMS或MapXtreme的WEB地图服务器。这样做需要开发的东西较多,有一定难度,不过只要购买MapObject或者MapX,价格相对较低。
③全部从底层做起,包括自己实现GIS功能,自己实现WebServer,开发工作量大,对人员、时间要求高。
从开发周期和系统维护的角度考虑,本文选用基于商业WebGIS平台进行二次开发的方式。现有的商业WebGIS平台主要包括:ArcIMS,MapXtreme,SuperMapIS三家。经过市场调研,同时考虑平台的通用性和扩展性,决定采用目前最流行的ArcIMS作为二次开发平台。
2.2 WebGIS主要实现模式
WebGIS实现模式归纳起来主要有以下3种[7]。
①瘦客户端/胖服务器模式。这是基于GIS服务器型,主要利用CGI方法来实现。这种处理模式简化了客户端,但加重了服务器端处理数据和网络传输的负担。
②胖客户端/瘦服务器模式。这种模式需要配套的服务器端和客户端软件。客户端从服务器端下载所需空间数据,再由客户端软件处理。这种模式虽然减少了服务器端的负担,但由于客户端软件功能非常有限,限制了系统的性能。
③均衡客户端/服务器模式。这是当前最普遍的模式。它利用Plug-in、ActiveX、Java Applets等前端插件技术将WebGIS服务器上的部分处理功能转移到客户端,从而较好的平衡客户和服务器两端的数据处理量,减轻了网络传输负担。这种模式的代表应属ESRI公司的ArcIMS。
本系统采用当前最普遍的均衡客户端/服务器实现模式。通过异步请求/响应机制,改变了传统的Web应用习惯,获得了良好的用户体验[8-9]。
2.3 WebGIS主要实现方式
在目前WebGIS的实现方式中,较常用的有通用网关接口 (Common Gateway Interface,CGI)、服务器应用程序接口 (Server API)、插件法(plug-ins)、客户端控件(ActiveX Control)和Java Applet等[10-11]。
CGI (Common Gateway Interface通用网关接口)是定义标准数据结构和方法的规范,是外部应用程序与Web服务器之间的接口标准。CGI实质是驻留在Web服务器上,主要实现超文本文件和Web服务器应用程序之间传递信息的一个可执行文件。早期的WebGIS开发方法就是采用CGI和Server API (扩充的CGI工具)来建立应用程序和WebGIS服务器之间的接口。
Server API应用程序是Web服务器应用程序的扩展。它的基本思想是基于动态链接库(DLL),使服务器程序运行速度提高并减轻系统的负载。从而改进了CGI技术,消除了启动和关闭每一个单独应用程序所需的开销,改善了Web服务的响应性能。但它有移值性差,并且安全性能不好等缺点。
Plug-in技术主要利用网络浏览器的API函数开发一个客户端浏览器上的能识别矢量图形格式数据的插件。GIS插件不但可以增加浏览器处理地理空间数据的能力,使人们更容易获取地理数据,而且插件处理和传输的矢量格式空间数据,数据量小,网络也只需将GIS数据一次性传输,这样就加快了用户操作的反应速度,减少网络服务器的信息流量,从而使服务器更有效地为更多的用户服务。但GIS插件受操作系统、运行平台、数据类型的限制。
ActiveX技术是在OLE控件上加了一些新的网络交互界面函数发展起来的一个解决方案。它是利用嵌在浏览器上的ActiveX组件作为客户端操作界面,当用浏览器访问包含ActiveX组件的WEB页面时,该组件自动下载到客户端,较成功地解决了CGI/HTTP瓶颈的约束。它是插件技术的一种,但无须将矢量图形转换成栅格图形就能直接为用户浏览、查询和分析。基于GIS ActiveX控件的万维网地理信息系统,依赖GIS ActiveX来完成GIS数据的处理和显示。利用这种技术可以把空间处理功能集成在ActiveX控件中,而客户机可以下载安装并能及时更新,因此充分利用了客户机空间数据处理分析能力。再加上ASP(Active Server Pages)技术可以作为ActiveX技术中的服务器端技术使用,ASP设置对象可方便地和Web服务器和数据库服务器交互,它存放并且运行在服务器端,减轻了对客户端的要求。但ActiveX控件存在着兼容性不好、安全性差等不足。目前许多GIS厂商都推出了ActiveX产品,如ESRI公司的MapObjects、ArcObjects,MapInfo公司的MapX以及Intergraph公司的GeoMedia Professional组件式GIS产品;国内也开发了一批高质量的组件式GIS产品,如中科院地理所的SuperMap,武汉大学的GeoSurf等。
Java技术是Sun公司于1995年推出的主要应用于网络应用开发的、面向对象的程序设计语言。因它采用了Java虚拟机技术(JVM),实现了平台独立性,做到了“一次编译,到处运行”的效果,同时支持Internet/Intranet环境下数据分布和计算分布的功能,所以它是目前实现WebGIS较为理想的方案。Java通过URL(Universal Resource Locator)实现分布式访问具有URL的数据对象,通过下载Java Applet小程序到客户端,将服务器上的计算操作部分放到客户机上执行,从而实现分布计算。利用Java技术开发WebGIS有两种方式:一种是只利用Java开发客户端GIS功能,服务器端仍用其它传统的开发方法或保持原有系统不变。这种方式在充分利用原有资源的基础上,增强了客户端的制图和地理分析功能,并可以处理矢量数据,具有开发周期短,开发成本低等优点。另一种是服务器端和客户端全都利用Java语言从底层开发。这是全新的开发方式,是未来WebGIS实现的主要方式。
本系统采用Java Applet技术。以Java为开发语言,采用Ajax技术,以服务器动态缓存地图形式开发。
3 系统设计与实现
3.1 系统架构设计
南水北调中线干线工程WebGIS平台采用B/S模式,主体框架用WebGIS体系结构构建,分为四层:客户层、Javascript引擎层、WebServer层&GISServer层、和数据层,系统总体结构如图1所示。
Client层作为最终客户端,负责提交用户请求和处理服务器返回的栅格数据、矢量数据。通过IE、Netscape等浏览器完成。
Javascript引擎层,负责连接Client层和WebServer层。该层担负着与 WebServer层异步数据交互、电子地图操作(如放大、缩小、漫游、移动等)、空间测量、数据查询等任务,是整个体系的核心层。由用户产生的页面事件交由这个引擎处理,它负责向服务器发送请求,服务器传回的是业务数据而非 HTML,引擎接收后,进行渲染,通过浏览器的解析在页面上显示出来。就提供地理底图的方式来讲,不是传统的服务器端将海量矢量地图临时生成栅格图片发给客户端,而是事先生成好栅格图块,用户请求时不做任何处理直接发给客户端,这大大减轻了服务器端计算及网络传输负担,同时也避免了仅仅为了基本视图而进行的海量矢量数据传输。这样将事件监听与页面渲染的工作交给了浏览器,而后台服务器只负责业务逻辑的处理。
WebServer层,负责处理Javascript引擎层异步请求、业务请求及响应。业务请求包括常规业务请求、GIS业务请求。
GISServer层,负责GIS业务逻辑的处理。与WebServer通讯,接收WebServer层提出的GIS业务请求,完成数据分析,提供分析后的GIS业务数据。
数据层,负责数据库及栅格图的组织和管理。数据层包含两种格式的数据,栅格地图切片数据及属性数据。它们分别应用于不同的功能模块,栅格地图切片数据应用于地图模块,属性数据应用于信息显示、查询模块。
3.2 系统软、硬件环境
3.2.1 系统运行硬件环境
①服务器端。HP xw8600工作站,CPU3.0GHz,2*4核,内存16G,硬盘250G(4+1磁盘阵列)。
客户端:DELL Optiplex 75,CPU2.26GHz,内存2G,硬盘300G。
3.2.2 系统运行软件环境
①服务器端。
操作系统:Windows XP中文版(服务器)。
数据库管理系统:Oracle10g企业版。
空间数据库引擎:ArcSDE9.2。
地图服务器软件:ArcIMS9.2。
Web服务器:Microsoft Internet Information Services(IIS)5.0及以上
开发工具:Eclipse3.2,Apache Tomcat5.0,Dreamweaver MX,JavaScripts,JSP,ASP等。
②客户端。
操作系统:Windows XP中文版(客户端)。
浏览器:IE,Firefox等。
3.3 数据库设计
南水北调中线工程WebGIS平台数据库由空间数据和非空间属性数据构成。
空间型数据是具有公共空间定位基础的数据。在本系统框架定义内的空间数据库,主要包括两大部分:一部分是南水北调中线工程沿线区域内的基础空间数据,包括行政区划、水系、交通、山脉等及其注记图层;另一部分是业务部门应用的空间数据,包括工程线路、节制闸、分水口、退水闸、倒虹吸、渡槽、隧洞、桥梁等专题图层。
其中,基础空间数据可看作整个系统的空间定位核心。基于调水工程的特点,在系统的使用过程中,业务空间数据作为信息展示的核心。尽管这些数据与基础空间数据息息相关,但在具体的业务功能开发中,参与直接应用的不是基础空间数据,而是业务空间数据。所以,系统内数据的使用是从基础空间数据到业务空间数据再到业务应用的一个层层递进的关系。
业务空间数据是通过工程管理部门提供的数据,在基础空间数据上设置和编辑相应的专题图层而实现。以SDE图层的方式存储在数据库中。
非空间属性数据包括沿线控制建筑物的尺寸、调水工程水情(水位、流量、各闸闸门开度等)、调水预期计划与历史记录、及其他与工程相关的数据。以表格形式存储在数据库中。WebGIS系统数据库结构见图2。
3.4 系统功能
系统的主要界面如图3所示,系统界面包括工具栏,地图显示区,图层控制区和信息显示区4大部分。在工具栏上用户可进行放大、缩小和测距等操作。图层控制区则用于选择显示不同的图层等。系统可实现的主要功能有如下几种。
①地图发布。能够将矢量地图转化成GIF或JPG格式的栅格图像,用户可通过浏览器方便地访问地图,见图3。
②地图缩放。用户可对地图进行放大或缩小,而地图的分辨率不变。
③信息查询。用户可对地图上的各建筑物信息进行查询。渠道断面信息查询见图4。
④测量距离。用户可对地图上的任意多点测量其距离,见图5。
⑤比例尺显示及控制。地图可显示当前的比例尺,同时用户可按比例尺对地图进行缩放。
⑥图层控制。用户可选择性的显示图层,见图6。
4 关键技术
4.1 “瓦片地图”技术
本系统地图生成引擎采用ESRI的ArcIMS,它负责向网络用户发布GIS地图、数据和元数据。在系统实际应用中,为了加快地图显示时间,提高数据执行效率,采用了“瓦片地图”技术。瓦片地图实际就是采用“预生成”技术将地图数据根据事先预定的范围或比例进行切片,把切好的地图图片保存在服务端,然后借助客户端直接提取图片来显示。基于瓦片地图服务框架的系统响应速度要快于传统的WebGIS系统,同时对服务器的负载也相应小一些。由于ArcIMS响应并发请求能力有限,所以在请求过多的情况下性能会受到影响,基于瓦片地图服务的特点,将底图数据切割成瓦片保存,需要做图层控制的图层实时生成,这样ArcIMS实时生成的数据大量减少,即能减小服务器负载,又不影响图层控制等功能使用。
4.2 Ajax技术
Ajax(Asynchronous JavaScipt and XML)是Jesse James Garrett于2005年2月提出的。在短短的四年多时间里,Ajax技术蓬勃发展。Ajax技术是由几项技术合成而形成的一项功能强大的新技术。
①文档对象模型DOM(Document Object Model):用来表示显示在浏览器上的整个文档对象及其层次结构。Ajax中使用JavaScript访问文档中的所有结点。通过对改变结点的属性或者增加、删除结点,控制页面的局部行为,实现界面元素的动态变化,从而实现客户端的动态显示和交互。
②定义元素样式的CSS(Caseading Style Sheets):在Web开发中CSS被用来定义标记的显示样式,实现标准的呈现界面。
③数据交换格式XML:服务器端与客户端之间交换的数据被序列化成为文本格式,通常选择XML作为数据交换的格式。XML是标准的数据表示方式,在服务器端和客户端都可以得到很好的解释。它为跨平台、跨领域的应用提供了一种通信手段。Ajax中,XML是服务器端与客户端规范的数据传输格式。
④XMLHttpRequest:它是Ajax最核心的部分。它用来帮助开发者实现客户端与服务器端的异步通讯。通过XMLHttpRequest,客户端可以在任何时刻与服务器端进行通讯,而不只是在页面提交时。服务器执行其他程序的同时,用户可以进行其他操作。
⑤客户端脚本语言JavaScript: JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言。Ajax中利用JavaScript实现Web应用程序对用户行为的实时响应和处理,例如鼠标事件,页面载入、异步请求的发起和响应等。JavaScript将Ajax中的各对象融合在一起。
5 总结与展望
南水北调中线干线工程WebGIS系统是采用ArcIMS9.2地图引擎,Oracle10g数据库管理软件,Tomcat5.0Web服务器软件,以Java为开发语言开发的具有二维网络信息发布功能的地理信息系统。该系统主要包括地图操作和业务功能两大部分功能。地图操作部分包括地图浏览、缩放复位、距离量算、地图定位等功能。业务功能部分包括工程信息显示和工程信息查询。该系统可作为工程管理系统的平台或者与管理平台进行无缝衔接,辅助南水北调管理部门实时掌握渠道运行情况,实现输水系统的实时调度控制,更好地为工程运行管理服务。同时,提供方便快捷的网上服务,使公众足不出户就能了解工程相关情况,更好地为经济社会发展服务。
参考文献:
[1] 韩念龙,陈圣波,王雪峰,等.基于ArcIMS的水资源环境管理信息系统[J].微计算机信息,2008,24(3):1-3.
[2] 段雪辉.WebGIS 在汾河灌区灌溉管理中的应用[J].科技情报开发与经济,2006,16(14):216-217.
[3] 丁继红,杨长保,马生忠,等.基于WebGIS地理信息网络发布的技术实现与应用[J].吉林大学学报(信息科学版),2006,2(24):210-214.
[4] 刘诗桥.WebGIS 在森林防火中的应用[A]. ESRI中国(北京)有限公司.第七届ArcGIS暨ERDAS中国用户大会论文集(2006):下册[C].北京:地震出版社,2006:651-655.
[5] 刘东民,陈 熠,刘 舒.黑龙江省防汛指挥决策支持系统基于ArcIMS平台的系统集成[A]. ESRI中国(北京)有限公司.
第七届ArcGIS暨ERDAS中国用户大会论文集(2006):下册[C].北京:地震出版社,2006:849-853.
[6] 徐 罡,许舒人.南水北调工程信息管理系统数据交换平台的研究与设计[J].南水北调与水利科技,2005,3(3):1-3.
[7] 邓凯,蔺启忠,王菁.基于XML的实时WebGIS优化模型的研究[J].计算机工程与设计,2003,24 (6): 4-7.
[8] 李舜才,李军治.南水北调中线干线工程施工信息管理系统建设与应用[J].南水北调与水利科技,2005,4(2):6-7.
[9] 鲁小新,王育红.南水北调中线干线工程运行维护管理系统分析与设计[J].南水北调与水利科技,2007,5(1):16-18.
[10] 娇树春.基于SVG的WebGIS设计[D].兰州大学硕士学位论文,2006.
[11] 冯艳杰.基于SVG的WebGIS实现技术[D].武汉大学硕士学位论文,2006.