张宏伟,魏 锋,佘远见
(河海大学地球科学与工程学院,江苏南京210098)
基于Flex和ArcGIS Server的城市防汛指挥系统的设计与实现
张宏伟,魏 锋,佘远见
(河海大学地球科学与工程学院,江苏南京210098)
针对淮安目前防汛工作上存在的问题,在介绍了ArcGIS Server、RIA/Flex和.NET等相关技术的基础上以及分析研究了系统的总体设计结构、数据库管理设计等,结合淮安防汛减灾相关情况,设计开发了 WebGIS城市防汛指挥系统,并介绍了该系统所实现的功能,以及系统开发过程中所采用的关键技术等。通过对该系统的研究应用,防汛人员能够有效地提高对城市洪汛管理、调度的工作效率,而且对于防汛减灾具有重大的指导意义,从而最大限度地减少洪汛给城市所带来的损失。
城市防汛减灾;ArcGIS Server;.NET;RIA/Flex;WebGIS
随着我国城市化进程,城市防汛减灾形势日趋严峻,城市防汛减灾的现代化是我国城市发展的迫切需求。过去几年来,淮安市虽然在河道综合治理、泵站维修改造和环境卫生管理等工作中大力投入,在城市防汛排涝方面得到明显改善,但城区防汛仍然面临许多问题,如城区防汛管理大量资料和信息仍然以传统的手工作业为主,无法实现数据的有效管理及资料信息的共享等,因此建立一个先进实用、专业有效的WebGIS城市防汛指挥系统很有意义。
本文基于.NET和ArcGIS Server平台,采用Flex和VisualStudio2008.NET共同开发淮安市城市防汛指挥系统,本系统对淮安市防汛减灾,社会经济可持续发展以及提高城市防洪标准具有重要的作用,对淮安防汛工作的开展具有科学的指导意义。
1.1 ArcGIS Server
ArcGIS Server是ESRI在ArcGIS 9.x系列产品中国推出的一个创建企业级GIS应用的平台,支持的GIS软件可以集中管理并且支持多用户,提供了创建和配置GIS应用程序和服务的框架,可以满足各种客户端的不同需求,其最大的贡献就是将高级 GIS功能,如空间分析功能等引入到网络环境。它既可以像ArcCatalog那样轻松地提供在线地图发布的功能,也可以像ArcMap提供在线的地图分析和地图编辑功能。而后者正是长期困扰ArcGIS开发人员的问题以及Server的优势所在[1]。
1.2 RIA/Flex
目前,越来越多的企业应用采用了Web应用(B/ S)的开发模式,然而传统Web应用存在着很多不足之处,包括页面表现力、浏览器和服务器的通讯等方面,已经渐渐不能满足用户的需求。而 RIA(Rich Internet Applications,富互联网应用)的出现在某种程度上颠覆了传统Web应用的理念和设计,提供比较出色的表现能力,尤其是在用户有复杂交互、地图无缝缩放等需求时,更能让用户感受到明显的体验差距。
Adobe公司的Flex无疑是目前最为流行、最为成熟的RIA技术,是RIA平台中的典型代表,堪称最完整、最强大的RIA开发解决方案,在客户端表现层方面具有强大的表现力,给用户提供前所未有的体验效果。
1.3 .NET
.NET是M icrosoft公司于2000年6月推出的下一代互联网软件和服务战略,是一个理想化的未来互联网环境,是要让所有计算机群、相关设备和服务商协同工作的网络计算环境,并全面支持XML标准。.NET技术具有跨平台性、跨语言性等特性。ASP.NET是建立在微软.NET框架平台上的完全面向对象的服务器端程序构建技术,能被用于一台Web服务器来建立强大的Web应用程序。
2.1 设计目标及原则
针对目前淮安市城区的防汛工作存在的问题,建立本系统,从而保证防汛工作人员能够实时准确地监视、掌握城区汛情信息,为防汛工作提供决策依据并调度城区的防汛排涝工程高效运作,保证城区防汛安全。
由于防汛工作关系到人民生命财产的安全,因此在系统建设过程中,必须保证系统的稳定、可靠、安全等特性。系统设计必须注重技术要先进,即利用GIS等当前先进的信息技术作支撑环境,同时需要注重实用,要求系统界面友好,满足用户实际需要,并且考虑到本系统的使用人员大部分为非计算机专业人员,要保证系统的使用简单方便、易学好用。由于本系统全部在局域网内使用,所以将存储的GIS服务器与部分数据库服务器部署在不同的物理介质上,用来保证系统的安全[2]。
2.2 系统体系框架
淮安市城市防汛指挥系统在总体结构上采用基于B/S模式的3层体系结构,包括表示层、应用层、数据层。其中表示层面向不同需求的用户提供不同的服务内容;应用层是整个系统的核心,几乎所有的分析和决策都在这层完成;数据层提供数据的安全存储和高效访问[3]。
B/S模式的应用系统的使用相对方便,用户可以直接使用Internet Explore等浏览器来实现各种GIS功能的操作,系统建设的成本较低。不过,依照目前的技术手段,要完全在IE浏览器上实现GIS的各种功能,只能采用ArcGIS 9.X的ArcGIS Server才能实现。淮安市城市防汛指挥系统的体系框架如图1所示[4]。
图1 平台应用体系结构图
2.3 开发环境
本系统以.NET和ArcGIS Server为开发平台,采用M icrosoftVisualStudio2008.NET和AdobeFlex Builder3.01协同进行开发。整个系统以M icrosoftSQLServer 2005为后台数据库管理系统,以ADO.NET技术来与数据源进行交互,以ArcSDE为空间数据引擎调用数据库中的空间数据。
2.4 数据采集
数据采集包括遥测数据采集和防汛相关数据采集。遥测数据是通过采集淮安城区各测站的雨量、水位、闸位数据,并将它们进行处理、入库。其工作原理是:首先从遥测现场不断地接收 GPRS数据包接收程序所发送过来的数据,通过 GPRS通信方式进行传输,到达中心接收服务器,然后接收服务器对数据进行解析分析,并将检测到的错误数据进行相应的处理,最后将合法数据写入水情遥测数据库。而对于防汛相关数据,主要通过淮安防汛相关人员进行调查、整理,包括河道、泵站等的相关资料、文档、数据等,最后写入水情综合数据库。
2.5 数据库设计
水利数据是防汛抢险决策的基础,淮安市城区防汛指挥系统的水雨情数据库需要存储和管理海量、多类型、多属性的信息,并且要求准确、及时和安全,因此本系统数据库的设计和建立至关重要。其设计建立原则包括:①应构建多层次、多维的数据库来满足不同对象;②考虑到网络状况,不同类型数据可以适当分布;③数据应集中管理,为保障数据的保密性。
考虑到以上几点,本系统采用具备高可靠性和易维护性等性能的M icrosoft SQL Server 2005数据库管理系统作为数据库的管理平台,支持数据加密、并行查询、强大的空间数据支持能力。尤其在存储大量空间数据、图像等信息时,更显其优势。
3.1 系统界面
主界面(见图 2)主要包括如下几个部分:系统logo、菜单栏、地图显示框、工具条等。其中菜单栏为各项系统功能模块的链接;地图显示框可以显示地图及对地图的操作过程;工具条上的各种工具按钮用于操作地图等[5]。
图2 淮安市城市防汛指挥系统主界面
3.2 实现功能
系统总体功能如图3所示。
图3 淮安市城市防汛指挥系统总体功能
1)实时水雨情模块。该模块可以实现基本地图操作,如缩放、漫游、全图显示、鹰眼等,以及按照给定的要求进行点、线、区域等的查询查找功能,并对查找结果进行快速定位并高亮或闪烁显示,以此满足用户的需求。
2)水雨情查询模块。该模块可以对淮安市的水雨情状况进行实时监测并做出统计形成图表,以及查询各个泵站的水位、流量、降雨量等详细信息,方便系统用户对于各个泵站的监控、管理等。
3)卫星云图模块。该模块是对卫星云图进行实时监测,可以浏览查询不同时刻的红外云图、水汽云图等,并做出相应的决策。
4)防汛组织模块。该模块用于展示淮安市防汛组织(机构)和不同泵站管理所的值班人员的详细信息,方便用户针对自己的要求快速查找所要的信息。
5)防汛发文模块。该模块用于显示针对防汛相关信息所发布的发文、通报、简报等,为用户提供及时有效的洪汛信息,以及宣传防洪防汛知识,增强用户对洪汛相关知识的掌握。
6)后台管理模块。设定管理员和一般用户,对系统进行不同操作。前者具有最高权限,对数据及用户信息进行管理维护,而后者只能通过系统获取防汛相关信息,不具有对数据进行修改、删除等操作权限。
3.3 关键技术
3.3.1 防汛地图的制作
设计开发本系统的一个前提就是地图的制作,地图制作、输出效果的好坏直接影响到后期防汛工作的进行。本系统所要使用的地图的制作可分为3个部分。
1)数据转换。由于数据主要来源于工程测绘部门,数据格式大都为DWG格式,不能满足我们后期对地图的操作要求,因此需要将其转换为Geodatabase格式。本次地图数据采用将 DWG中的各种要素图层分别提取、各自采用转换效果好的方法转换成 Geodatabase,并在各自转换中统一坐标系统,满足数据间的吻合,达到最佳效果。
2)数据编辑。由于数据转换存在误差,必须进行几何数据和属性数据的编辑。前者包括图层合并,结点连接删除等,在ArcMap中参照原CAD数据文件进行图形纠错。而后者则是对属性表的操作,包括添加、修改字段等,以进行后期的查询分析。另外制作完整地图,还要附加一些学校、医院等地标信息,我们通过从GoogleMaps网站获取相关数据来实现,但其在地图上有偏差,要对基础地图采用坐标变换中的平移来解决与地标的吻合。
3)地图制作。经过以上两步,在ArcMap中再对地图数据进行色彩分级、分类符号等符号化的工作,便可以输出地图,但在输出前还应考虑版面设计、地图整饰等,包括不同图层在不同大小的比例尺下的显隐。最后将地图保存为.mxd格式,供后期分析所用。
3.3.2 Flex与ArcGIS Server、.NET的结合
通过Flex开发一个WebGIS的绚丽的用户界面,再由ArcGIS Server提供高效的GIS地图服务,肯定能给用户带来前所未有的体验。为了将两者结合起来,ArcGIS在RIA领域推出了ArcGISAPIfor Flex,主要面向基于ArcGISServer构建GIS服务的RIA开发。使用ArcGIS API for Flex开发的Flex应用可以很方便地使用地图功能和ArcGIS Server的REST接口提供的GIS查询及分析功能,方便地将用户的业务和GIS结合起来。
Flex与.NET技术的结合表现在:前台用Flex开发的应用程序,而后台则采用ASP.NET技术。用户通过发送数据请求到后台,然后把结果展现在前台用户界面。这就涉及Flex与.NET之间的数据通信。
Flex客户端与.NET服务端之间进行数据通信主要可以采用HTTPService、WebService和URLLoader等方式来完成,在本系统中主要采用HTTPService方式。使用 HTTPService可以实现加载数据,也可以实现参数传递。前者是基于HTTP协议发送POST和GET请求外部数据,然后通过指定的监听方法来处理响应;后者在Flex端将数据传递到.NET服务端,再通过处理后,将结果返回给Flex客户端。
Flex最终会生成sw f文件以ActiveX的方式部署网页上(jsp,aspx等),由于ActiveX是一个独立体,它并不能直接获取页面的元素数据,同样aspx等服务端代码也不对它进行操作,因此Flex必须提供相关对象来灵活地和当前网页的JavaScript相互进行灵活地调用。此对象就是ExternalInterface,包括addCallback和call方法,通过它们Flex可以与网页中的JavaScript进行互操作,从而将Flex生成的.sw f文件部署到网页上。
本系统将Flex中编译后生成的相关文件,包括AC_ OETags.js、playerProductInstall.sw f、index.sw f、index.htm l及其余相关功能Widget生成的.sw f等复制到.NET项目中对应的文件夹下,并把index.htm l代码中如下一部分代码复制粘贴到系统主页面代码的合适位置。再次运行程序,完成.sw f文件嵌入到网页中(见图4)。
图4 Flex生成的.sw f文件嵌入网页前、网页后
本系统是基于.NET和ArcGIS Server平台,采用Flex和VisualStudio2008.NET共同开发设计的,提供基本GIS功能和水雨情信息等的实时监测、查询、管理服务。系统对淮安的防汛减灾辅助决策具有实用价值,满足了系统使用人员对防汛减灾及调度等的新需求,对城市防汛工作的研究、推动城市现代化防洪具有极其重要的意义,为淮安有效控制和降低洪汛灾害提供了科学的决策依据。当然,本系统虽然实现了企业级WebGIS应用中的关键技术,但系统目前主要提供数据与信息查询、管理,而在分析处理等方面的功能较少,这些有待作进一步研究。
[1] 朱士峰,李俊磊,谈俊忠,等.基于ArcGISServer的基础地理信息发布平台解决方案研究[J].安徽农业科学,2008,36(4):1696-1698
[2] 王佐成,薛丽霞,汪林林,等.基于WebGIS的城市规划管理信息系统设计[J].重庆邮电学院学报,2006,19(2):264-267
[3] 裴凤松,胡宝清.基于ArcGISServer的区域资源环境和可持续发展信息共享与应用服务系统设计与实现[J].城市勘测,2008(6):62-67
[4] 赖永兴,张艳,益建芳,等.基于ArcGIS Server的城市规划管理信息系统设计[J].测绘与空间地理信息,2008,31(3):114
[5] 吴微微,李谊瑞,范灵春,等.基于.Net的WebGIS城市防震减灾服务系统[J].世界地震工程,2009,25(2):112
Design and Realization of City Flood Prevention Command System Based on Flex and ArcGIS Server
by ZHANG Hongwei
Aiming at and associating with the currently work conditions and problems of the flood control and disaster alleviation in Huai'an, We designed and exploited the WebGIS City Flood Prevention Command System,introduced the functionsachieved in the system and the key technology used in the system development process and so on, which is based on related technologies such as ArcGIS Server,RIA/ Flexand.NET,aswell asanalyzed and studied the whole design structure,database management and design and so on.Through the research and application of this system,the researchers can effectively enhance the work efficiency of flood control of city management and scheduling,and which has significant guide meanings to flood prevention and disaster alleviation,thereby minimizing the loss caused by flood damage to the city.
city flood prevention and disaster reducing;ArcGIS Server;.NET;RIA/Flex;WebGIS
2010-10-20
P208
B
1672-4623(2011)06-0034-03
张宏伟,硕士,研究方向为GIS开发与应用。