时间:2024-05-22
陈士城 ,刘晓春 ,刘 旭 ,张 林
(1.苏州市数字城市工程研究中心有限公司,江苏 苏州 215021; 2 .徐州市贾汪区国土资源局,江苏 徐州 221011)
基于Flex和ArcGIS Server的WebGIS框架设计与应用
陈士城1,刘晓春1,刘 旭2,张 林1
(1.苏州市数字城市工程研究中心有限公司,江苏 苏州 215021; 2 .徐州市贾汪区国土资源局,江苏 徐州 221011)
基于Flex及ArcGIS Server技术,设计了一套交互性好、实用性和扩展性强的WebGIS系统框架。阐述了框架各组件的相互关系及实现方式,并利用该框架建立了苏州市相城区水利决策支持系统。该框架可提高开发效率、增强用户体验,运行效果良好,具有一定的参考价值。
Flex;ArcGIS Server;WebGIS;框架设计;地理信息系统
传统WebGIS存在一定的缺陷:①采用JSP或JSF作为系统表现层,系统用户界面的表现力较弱,交互性不强,难以满足用户丰富体验的要求;②将用户请求集中于服务器端处理,没有充分利用客户端的资源,造成宽带资源的消耗与浪费[1-3]。富互联网应用(RIA)技术的出现使得Web应用程序不仅具有B/S架构支持跨平台、易部署的优势,而且具有C/S架构良好的人机交互优势[4,5]。目前,基于RIA技术的WebGIS系统开发主要有Flex技术和Silverlight技术等。同传统Web技术相比,Flex能够创建更为丰富的用户界面、具有更强的交互性和快速响应能力,平衡客户端与服务端的计算负载[6,7]。为了克服传统WebGIS的缺陷与不足,本文基于Flex和ArcGIS Server技术研究设计了一套交互性、实用性和扩展性强的WebGIS系统框架。
基于Flex和ArcGIS Server的WebGIS应用系统框架分为3层:表现层、应用业务层和数据层。
1)表现层主要是借助于ArcGIS API for Flex和Flex富互联网应用技术,为用户展示和提供一个人机交互的界面,可完成地图操作和相关业务功能。系统主要运行在Web浏览器和Flash播放器中[8]。
2)应用业务层是整个系统框架的核心,负责系统运行的业务逻辑,接收来自浏览器端的请求,并根据请求作出响应。该层可具体分为普通业务、地图业务和综合业务。普通业务主要通过Flex的WebService技术与J2EE应用服务器进行交互实现;地图业务主要通过REST协议与ArcGIS Server服务器进行交互来完成相关操作;综合业务则是将普通业务和地图业务组合起来完成业务操作。
3)数据层主要包括空间数据库、属性数据库和其他相关文件数据。空间数据库的建立是通过ArcSDE空间数据库引擎将空间数据保存至商用关系型数据库中(Oracle、SQL Server、DB2 等),由 ArcMap、ArcCatlog和ArcSDE统一管理。属性数据存放在所选用的关系型数据库中,方便统一管理调用。其他文件数据(图片、视频等)以文件的形式存储在对应的服务器中。
本框架系统以插件(Widget)方式开发。每一个功能模块作为一个单独的Widget,通过简单的配置就可加载到系统中。在框架中,Widget的开发只需要实现特定的接口或直接继承己实现接口的超类即可。实现一个Widget最基本的方式是继承已实现IBaseWidget接口的BaseWidget类,这样通过配置可直接加载到系统中,所有初始化工作由框架自动完成,开发者只需关注具体的业务功能开发。
在框架中,每个Widget是一个独立完整的程序模块,具备相应的3层结构: Model(模型)层、View(视图)层和Controller(控制)层。这种模式的支持依赖于pureMVC框架实现。pureMVC是基于MVC 的一个轻量级开发框架,目的是降低模块间的耦合性,创建易扩展、易维护的应用程序。pureMVC通过发送消息的方式处理这3层的通信从而降低3层间的耦合度[9]。pureMVC中对应的组件有:View层,Widget组件中的界面部分;Controller层,Mediator组件;Model层,Proxy组件。界面组件通过与用户交互产生操作并分发事件,Mediator获取事件,并调用相应的Proxy处理业务逻辑。逻辑处理会相应地改变Proxy中的数据,由于Proxy中的数据和界面组件进行了数据绑定,所以数据的更改会实时地反映到界面中来。
在系统启动时,框架会根据配置文件进行初始化,包括初始化组件以及组件容器,并将对应的描述信息通过特定的接口注册到框架中,开始加载初始化启动的Widget。在配置文件中,主要包括基本通用组件配置(负责与服务器端通信)、Widget容器组件配置(初始化Widget在容器中的布局)和Widget组件配置(对应的文件及相关描述信息)。
第一次加载Widget时会自动根据相应的配置生成上下文环境,并加载到对应的容器中,调用初始化方法对相应的业务逻辑进行初始化工作。如果此Widget依赖于其他Widget,则会先自动加载所依赖的Widget,再加载自身。加载后的Widget会根据其容器定义的布局方式进行布局,从而将界面显示到主系统界面中。
2.2.1 创建Widget组件
在开发一个Widget模块时,首先根据需求将功能分解,以粗粒度的方式将功能分解成一个或多个子模块,每一个子模块负责实现一些相对集中的功能,而子模块对应的就是一个Widget,如一个模块可分为3个子模块,就可用3个子Widget来协作完成整个模块的功能;然后分别创建每一个Widget组件,并定义好Widget之间的交互接口,包括“消息名称”和“消息参数”。实现Widget之间耦合度最低的方式是通过发送消息进行,这样Widget之间不但没有直接引用对方的功能,而且没有依赖对方的接口。当一个Widget需要其他Widget实现某项功能时,只需发送消息并把所需要的参数传递过去。此时Widget会监听到消息并获取参数执行相应的逻辑,而完成数据的处理。
2.2.2 Mediator的设计
完成Widget的创建后,为了实现正常的通信,还需创建Mediator并与Widget关联。在框架中,每一个Widget都需要关联一个Mediator,这样Widget就可和其他Widget以发送接收消息的方式进行通信,Mediator扮演发送器以及接收器的角色。在Mediator里,可调用通道发送消息,也可监听通道中的消息进行响应。
2.2.3 Proxy的设计
在框架中,Proxy负责业务逻辑的处理,主要是对各种数据操作的封装,包括远程数据和本地数据。Proxy中的数据和Widget视图组件是绑定的,对Proxy中的数据进行操作会相应地反映到界面当中,这样用户就可实时看到交互的结果。创建Proxy时,首先要根据需求设计好对应的接口以及操作,定义好后就可创建一个具体的Proxy组件实现这个接口。
基于上述框架,开发了苏州市相城区水利决策支持系统,主要包括查询检索、事件管理、地图编辑、图层管理、Excel上传、地图打印、模块管理、监控监测等功能模块。地图服务采用ArcGIS Server 9.3发布,将相城区底图、水利相关要素以缓存地图服务和动态地图服务的形式发布。系统中采用SQL Server2005数据库存储空间数据和相关业务属性数据。在系统中,可实现地理要素属性的查询、编辑等操作,以及相应的业务功能。系统运行效果如图1所示。
图1 系统运行主界面
[1] 刘俊, 谭建军, 邵长高. 基于Flex 的WebGIS 框架设计与实现[J]. 计算机工程, 2010, 36(10):242-244
[2] 杨明, 李全. 基于J2EE 和ArcIMS 的地籍管理WebGIS[J]. 计算机工程, 2007, 33(15): 267-268
[3] 刘二年, 丰江帆, 张宏. 基于Flex的环保WebGIS研究[J].测绘与空间地理信息, 2006, 29(2): 71-72
[4] 张康寿, 冯兵, 孙燕刚,等. 基于RIA和Web Services的WebGIS系统的开发[J]. 地理空间信息, 2009, 7(2):109-110
[5] 刘二年. 基于Rich Internet Application 技术的WebGIS 研究[D].南京: 南京师范大学, 2006
[6] 赵振华, 廉东本. 基于Flex 的WebGIS 框架的研究与应用[J].计算机系统应用, 2011, 20(11):146-149
[7] 汪林林, 胡德华, 王佐成,等. 基于Flex的RIA WebGIS研究与实现[J]. 计算机应用, 2008 , 28(12): 3 257-3 260
[8] 袁煜锋. 基于Flex与Rest的WebGIS研究[D]. 上海: 华东师范大学, 2009
[9] 徐杏芳, 夏浩波, 王康. MVC模式在Flex框架的应用研究[J].长江大学学报, 2008, 5(4): 325-327
Design and Implementation of WebGIS Framework Based on Flex and ArcGIS Server
byCHEN Shicheng
The Flex and ArcGIS Server were used to design a WebGIS system framework with high interaction, practice and expansibility in this paper. This paper also elaborated the realization mode of controls and their relationship. Finally, the water conservation decision support system of Xiangcheng was constructed using this framework.The application shows that the framework can improve development effi ciency and user experience, as well as satisfying operational eff ect and having a certain reference value.
Flex, ArcGIS Server, WebGIS, framework design, GIS
P208
B
1672-4623(2014)02-0109-02
10.11709/j.issn.1672-4623.2014.02.038
2012-10-23。
项目来源:江苏省自然科学基金资助项目(BK2011343);江苏省企业院士工作站资助项目(BM2010509);科技部中小企业技术创新基金资助项目(11C26213201271);苏州市科技局2012年度科技计划资助项目(SS201231)。
陈士城,硕士,工程师,主要研究方向为地理信息系统开发。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!