基于ArcGIS API for Flex的供水调度工程可视化的研究

来源 :软件工程 | 被引量 : 0次 | 上传用户:guojunaaaa
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:本文引入ArcGIS Server平台,使用具备创建高交互性、富客户端特点的Flex技术,研究并设计三层体系结构的供水调度可视化系统。该系统集成各专题模型及相应的计算软件模型,为供水调度系统提供可视化的操作平台,从而方便管理和维护各模型参数及运行结果,实现地图数据和工程业务数据信息的显示、敏感信息的地图图层显示或隐藏、工程问题线路的查询、问题线路的信息查阅,以及专题地图的制作等功能。
  关键词:ArcGIS API for Flex;ArcGIS Server;可视化;供水调度
  中图分类号:TP391.9 文献标识码:A
  1 引言(Introduction)
  当前,伴随着实时通讯技术,网络技术、可视化技术、多媒体技术地不断发展,可视化在水利行业的需求也日益凸显其重要性以及高标准。当前,大多数可视化展示系统一般都具备如下特点:直观显示和归纳海量数据;关联数据集;多维度显示;界面友好。利用现有的GIS技术完全可以实现从单调、枯燥的数据处理、查询、专题地图制作到空间分析、建模和三维仿真等,从而更加清晰、直观地表现水资源的时空状况及规律,为决策者提供决策支持[1]。
  本文引入ArcGIS Server技术平台,使用具备创建高交互性和富客户端特征的Flex技术,重点研究并设计出三层体系结构的供水调度可视化系统。
  2 ArcGIS API for Flex(ArcGIS API for Flex)
  ArcGIS API for Flex是ESRI推出的用于富互联网应用程序RIA(Rich Internet Applications)开发的WebGIS客户端开发包,能够通过利用ArcGIS Server自带资源,包括地图服务、地址服务、要素服务和地理处理服务及Flex组件,其最大优点就是运行速度快,能够创建出交互性非常良好和体验非常丰富的Web应用[2]。
  ArcGIS Server是一个便于构建集中管理且支持多用户的企业级地理信息系统应用的综合开发平台。它不仅仅提供了丰富的地理信息系统功能以便于开发者利用它来创建并配置Web应用及服务、基于.NET和J2EE标准的Web服务器上的企业应用,如EJB,还可以用C/S的模式访问桌面应用。ArcGIS Server的管理由ArcGIS Desktop负责,可以通过互联网Internet或局域网来访问。ArcGIS Server 9.3版还增加了Rest接口可用于发布GIS服务,所有的资源和操作都可由Rest API实现,当然这些资源和操作的访问都必须通过ArcGIS Server发布的地理信息系统服务的URL(Uniform Resource Locator,统一资源定位器)得到[3]。
  Flex是Adobe公司推出的,基于其专有的Macromedia Flash平台,并且涵盖了支持RIA开发和部署的一系列技术集合。通过Flex技术,开发人员可以将RIA程序编译成Flash文件,运行在装有AdobeFlash Player软件的客户端浏览器中。Flex采用的是GUI界面开发,使用MXML语言,并提供多种组件,可用于实现包括Web Service、远程对象、Drag and Drop、动画和互动界面等功能,而且还能针对于诸如PHP、ASP、JSP等的HTML应用在每个请求时都需要执行服务器端的模板,由于客户端只需要载入一次,因此Flex应用程的工作流程被极大地得以改善[4]。ESRI公司开发的ArcGIS API for Flex很好地结合了Flex技术,从而给Flex在GIS领域的应用带来了新的机遇。
  3 供水调度可视化系统体系(Visualization system
  of water supply scheduling)
  系统基于SOA软件体系构架进行设计,分为数据层、服务器层和应用层的三层构建模式,如图1所示。应用层基于Flex客户端进行开发,实现客户端应用;服务器层包括ArcGIS Server、Web Server、XI;数据层基于SQL Server 2008和ArcSDE实现地理数据和工程业务数据一体化存储和管理[5]。
  (1)应用层
  应用层的功能是响应Flex富客户端请求,并根据用户请求类型做出响应,它是采用ArcGIS API for Flex和Flex Framework进行设计及实现的,其中Flex客户端对外有两个数据接口,一个是REST,负责连接ArcGIS Server数据源;另一个是Servlet,负责连接Web Server和XI组件的数据。
  (2)服务层
  服务层包括两个服务器,一个是ArcGIS服务器,另一个是Web服务器。ArcGIS服务器是通过ArcGIS API for Flex访问Flex地图数据中的URL地址,如ESRI公司对外提供的数据源URL地址为http://server.arcgisonline/ArcGIS/rest/services/ESRI_StreetMap_world_2D/MapServer,本地端需要发布的数据可以存放在本地服务器中,URL地址为http://192.168.3.18:8399/arcgis/rest/services/all/mapserver。所以在客户端,只需访问这两个地址,即可对地图数据进行操作。
  Web服务器具有开放性接口,可用于接收来自于客户通过浏览发送过来的请求,并根据客户请求得到来自于从ArcGIS服务器中的相应地图服务对象,与此同时还可直接和后台数据库交互获得信息。Web服务器多作为备用服务器,通过项目的ID值和Flex连接,从而实现数据库连接、文件上传、图片显示等诸多功能。本文中设计的系统所需数据都可以通过Web服务器到其他系统中获取,实现了资源共享[4]。   在服务层,还可包括XI(Exchange Infrastructure,交互基础设施)组件:XI采用面向服务的体系架构,利用各种开放标准,支持多种通信方式,把SAP和非SAP无缝地集成到一起。本系统除了需要地图数据,还有一些工程业务方面的数据,工程数据就采用从XI中获取,XI向外提供XML形式的接口,通过Web Server实现,所以系统采用XI组件作为数据源[5]。
  (3)数据层
  该系统中的数据既包括地图数据,同时还有工程业务方面的数据,是基于SQL Server 2008和ArcSDE实现地理数据和工程业务数据一体化存储和管理。
  a.地图数据
  ArcGIS API for Flex提供资源是借助地图服务形式,通过REST服务可实现在多个客户端间共享资源,所以确保全部客户端均能访问到共有资源。使用ArcGIS服务器上的资源服务时,还能与使用本地资源一样对它进行方便快捷的访问,比如,当访问ArcGIS服务器上的地图服务时,地图文档和地图数据就像存储在本地主机上一样。ArcGIS服务器可以提供的服务类型很多,主要包括Map service、Geocode service、Geodata service、Geometry service、GeoProcessing service、Globe service,以及Image service等。每一种服务都要有对应的资源,比如Map service对应的GIS资源就是.mxd或者.pmf格式的地图文件。
  在本文所设计的系统中,要实现Map service功能,所需的地图数据主要包括动态地图数据图层和瓦片图层。其中瓦片图层当作底图使用,可以直接用ESRI公司提供的现成的在线数据[6]。如行政区划图的URL地址为http://server.arcgisonline.com/arcgis/rest/services/esri_streetmap_world_2d/mapserver。地形图的URL地址为http://server.arcgisonline.com/arcgis/rest/services/world_topo_map/mapserver。影像地图的URL地址为http://server.arcgisonline.com/arcgis/rest/services/esri_imagery_world_2d/mapserver。
  动态地图数据图层主要包括工程所在地的区划图、供水线路图、水电站图等,数据存放在本地服务器上,其URL地址为http://192.168.3.18:8399/arcgis/rest/services/all/mapserver。
  b.工程业务数据
  本系统是中还涉及工程业务方面的数据,主要包括项目概要信息、进度、质量、成本、施工方、监理方等。这些数据可直接存放在服务器端,可以通过Web Server方式,从XI中实时获取。要实现工程业务数据的实时提取,采用的方法非常简单,仅需在Flex中使用HTTPService标签就可以实现,HTTPService标签的格式为,其中URL为服务器地址。
  4 供水调度可视化系统主要功能设计与实现(Design
  and implementation of the visualization system
  of water supply scheduling)
  本系统集成各专题模型及相应的计算软件模型,为供水调度系统提供可视化的操作平台,从而方便管理和维护各模型参数及运行结果,实现地图数据和工程业务数据信息的显示、敏感信息的地图图层显示或隐藏、工程问题线路的查询、问题线路的信息查阅和专题地图的制作等[7]。
  (1)信息显示
  供水工程具有典型的空间分布特征,所以供水调度可视化系统必须具备常用的地图操作功能,如地图的缩放、全图显示、漫游等,此外还需具有鹰眼功能,便于用户在操作地图时更方便定位到相应的位置,从而能更好地查看和监测。
  该项功能的实现方法表述如下:利用ArcGISTiledMap
  ServiceLayer标签来获取系统瓦片图层的地图数据服务,对应的代码是  url="http://server.arcgisonline.com/ArcGIS/rest/services/ERRI_StreetMap_World_2D/MapServer"/>;使用ArcGISDynamicMapServiceLayer标签来获取系统动态地图数据图层的地图数据服务,对应的代码是。需要注意的是,必须让ArcGISDynamicMapServiceLayer标签放置在ArcGISDynamicMapServiceLayer标签的前面,因为瓦片图层是当作底图来显示的,而动态地图数据图层是叠加在瓦片图层上显示的。另外还可以用Extent标签来控制地图可视化的范围。
  本系统动态图层和瓦片图层叠加后显示的效果如图2所示。
  (2)图层显示控制
  由于系统数据量大且繁杂,所以在系统功能实现时使用图层控制功能对系统数据进行控制及管理,为了突出用户所感兴趣的图层信息,需要有针对性地显示或隐藏相应图层。   ArcGIS API for Flex并没有提供现成的TOC控件(TOC控件能直接对图层进行显示控制),但是在本系统中创建了一个TOC控件。实现方法:首先需要新建一个LayersOnandOff.mxml网页,在该网页上添加Map控件并设置好ArcGISDynamicMapServiceLayer标签的属性;再添加一个专门用来控制地图切换显示的ComboBox控件,让ArcGISDynamicMapServiceLayer标签的URL属性的值困绑定ComboBox控件的选择值,这样当ComboBox控件的选择发生改变时,地图也会根据ArcGISDynamicMapServiceLayer标签的URL的值进行切换。对应的主要代码如下:
  
  

  
  (3)专题图制作
  在供水调度工程可视化系统中,必要的专题图,如单值专题图、统计专题图等对于表达和展示空间对象专题信息就显得非常重要。虽然ArcGIS API for Flex本身并不提供制作专题图的控件,但可以利用Flex的Chart组件来实现专题地图的设计与制作。其实现方法主要为:首先添加一个Flex的Chart组件,用它的Symbol来渲染Graphic,再将渲染后的Graphic插入到图层GraphicLayer中。实现的主要代码如下:
  
  
  (4)工程问题线路查询显示
  在供水调度系统中,经常需要查询一些问题线路,并实时查询到该工程线路的基本信息,以提供给决策者和技术部门及时拿出决策和解决方案。本系统采用高亮显示问题线路的方法来解决这个问题,效果如图3所示。
  该功能的实现方法:首先找到存在问题的线路,并且将问题线路做渲染Symbol来标记,再将渲染后的Graphic进行高亮显示。当查询到问题线路后,要将查询到的地理元素高亮显示则需要esri:GraphicLayer。GraphicLayer图层的实现方法:首先新建一个IdentifyTest.mxml网页,在网页中添加一各Map控件,并设置ArcGISDynamicServiceLayer标签的属性,为其添加一个complete事件,complete事件就是用来实现当地图载入完成后获取地图的图层名称;然后在GraphicsLayer中添加一个是用于当有元素添加到GraphicsLayer时设置元素的显示样式的symbolFunction功能;再用esri:draw控件绘制出点、线等要素,当绘图完成后执行drawEnd的drawEndHandler(event)方法,并且在drawEndHandler(event)方法里再添加一个用以实现将遍历查询结果添加到Graphicslayer进行高亮显示的esri:IdentifyTask控件。其主要实现代码如下:
    "http://192.168.3.18:8399/arcgis/rest/services/all/mapserver" complete="mapHandler(event)"/>
  
    "http://192.168.3.18:8399/arcgis/rest/services/all/mapserver"/>
  (5)查看工程线路信息
  工程线路信息就是工程业务数据,要实现工程业务数据的实时提取,只需要在Flex中使用标签HTTPService即可,这个是实现GIS和XI集成的一个关键所在。当查询到工程存在问题线路时,需要查看该线路的基本信息,提供给管理者和决策者。在本系统中,当用鼠标单击高亮显示的问题线路时就会弹出该问题线路的基本信息窗口,从而实现工程线路的信息显示功能,效果如图4所示。要实现该功能,事先必须解决两个技术问题,一个是要求工程线路得由一系列的坐标点构成,这样能保证鼠标点击时不会直接点选到线路;二个是要确保利用infowindow组件能准确获取鼠标点击的位置。
  首先通过鼠标在地图上的点击事件MouseUp获得鼠标点击位置的坐标,再用esri:draw控件绘制出点(但该点先隐藏不显示),然后对所绘制的点进行identify操作来获得所要选取的问题线路,并且获得该线路的path属性。本系统实现时,构造一个二维数组来表示path属性,如path[i][j]表示其坐标,其中下标i表示第i条线路,下标j表示第i条线路上的第j个点,这样就利用path[i][j]来表示鼠标点击位置的坐标,这样问题线路上各个点的坐标都可以利用该二维数组获取,从而就方便求得鼠标点击位置,以及线路上的各个点与点之间的距离,最后通过比较得出最短距离,从而来确定Infowindow所需要的线路上的那个点[8]。   解决了这两个问题后,要实现问题线路信息的显示就可以用ArcGIS API for Flex本身提供的Infowindow组件。Infowindow能提供在Map上弹出信息提示的功能,而且当定义一个Map时,Map就会自动生成一个Infowindow,Infowindow使用的重点就在于设置它的content属性,即是Infowindow窗口中的信息内容。主要的实现方法:首先新建一个showInfoWindow.mxml网页,该网页的主要功能有两个,第一个是实现从动态地图数据图层的数据读取线路数据显示到ArcGISTiledMapServiceLayer的ESRI_StreetMap_World_2D的地图上,第二个是实现当鼠标点击线路时显示该线路的基本信息。在新建的页面中添加Map控件,以及用来显示ESRI_StreetMap_World_2D的ArcGISTiledMapServiceLayer和用来显示线路的LinesLayer,主要代码如下:
  
  
  
  

  再定义鼠标点击的MouseUp事件方法function MouseUpHandler(event:MouseUp)实现线路信息的显示,显示信息就用Map控件的Infowindow组件,而且对Infowindow进行设置,添加LinesInfo.mxml文件用来作为Infowindow的content内容。
  5 结论(Conclusion)
  本文基于ArcGIS Server平台,引入能够创建高交互性、富客户端的Flex技术,使用XI组件作为数据集成中间件集成GIS数据和本地工程业务数据库,研究并设计三层体系结构的供水调度可视化系统,最终实现了地图数据和工程业务数据信息的叠加显示、敏感信息的地图图层显示或隐藏、工程问题线路的查询、问题线路的信息查阅,以及专题地图的制作等功能。由于使用了Flex技术,本系统极大地减少了与服务器之间的通信次数,减少了服务器的负荷,提高了响应速度,并且具有强交互性,强表现力,界面友好且丰富,极大程度地挖掘和发挥空间数据的效用。
  参考文献(References)
  [1] Cheng Peng,Wu Huarui,Shi Xiaoxia.Geo-visualization of agricultural products price data based on webGIS[J].Applied Mechanics and Materials,2014:1899-1902.
  [2] Cheng Qianwen,Zhou Lei,Cheng Honghua.Design method for dynamic map symbols based on RIA environment[J].Applied Mechanics and Materials,2013:984-988.
  [3] CHEN Shicheng.Design and Implementation of WebGIS Framework Based on Flex and ArcGIS Server[J].Geospatial Information,2014(02):109-111.
  [4] ESRI公司.ArcGIS API for Flex在线帮助[EB/OL].http://resources.esri.com/help/9.3/arcgisserver/apis/flex/help/index.html.
  [5] 陈光炎,陈松乔.基于ArcGIS API for Flex的污染源WebGIS研究[J].中国环境管理,2011(01):29-32.
  [6] 豆丁网.API For FLEX教程,互联网文档资源http://www.docin.com/p-300035939.html.
  [7] 冯亚丽,等.基于XI的SAP系统与外围系统集成[J].计算机系统应用,2012,21(2):9-12.
  [8] 胡瑞鹏,王汉东,黄会勇.基于WebGIS的南水北调中线水量调度信息查询系统设计[J].人民长江,2014,(23):109-111.
  作者简介:
  闵 俊(1978-),男,本科,助理工程师.研究领域:软件开发.
  胡瑞鹏(1976-),男,硕士,讲师.研究领域:GIS应用.
其他文献
妇科疾病误诊为急性阑尾炎17例原因分析温州市瓯海梧埏医院外科(325014)陈宣存林正渊阑尾炎是常见的外科急腹症,但误诊误治屡有发生。据有关文献报道(1),将其它疾病误诊为阑尾炎而施行手术的
保密信息的安全传输在商业贸易、网络通信、国防军事等领域有着广泛的应用需求,然而信息安全的核心无疑是密码技术,密钥分配与管理又是密码技术的关键。本文阐述了传统密码算法的密钥分配、身份密码体制的密钥分配、基于生物特征的密钥分配、量子密钥分配的常用技术,我们对它们进行了必要的分析和比较教学,达到了教学的目的,并提高了教学效果。
本文首先讨论了考试系统的防作弊分级,将其分为A、B、C、D四个等级。然后,针对达到C级防作弊要求的客户/服务器考试系统,本文提出了相应的防作弊处理策略和措施,并给出了用于
高位颈椎脊髓损伤手术的麻醉处理附属第二医院麻醉科胡明品[关键词]颈椎手术;脊随损伤;麻醉颈椎部位险要,手术难度大,麻醉危险性大。我院于1991~1995年施行高位颈椎脊髓损伤手术12例,现就麻醉处
摘 要:在H.264视频编码器帧内预测模式下,为确定一个宏块的帧内预测模式,会带来很大的运算复杂度,基于图像差分的帧间预测模式快速选择算法,采用测定图像序列平坦度的思想,能够实现快速帧间模式选择。可以有效减少模式搜索次数并能保证视频编码的质量,从而可大幅度降低编码时间和视频压缩的计算量,有效地减少了帧间模式选择算法运算复杂度,有利于实际应用。  关键词:H.264;图像差分;模式选择;边缘信息;帧
针对高职院校教师未能充分利用"互联网+"发展所带来便利,提出在教学方式的教育变革问题,介绍了软件人才培养中基于互联网环境下,学赛融合程序设计能力培养,课程教学资源、信息化教学模式,师资队伍建设,结果表明利用"互联网+"可以改进教育教学方式,提升高职人才培养质量。该模式对高职软件人才培养有较好的借鉴价值。
脉络宁治疗脑梗塞62例临床观察王怀村我们于1993年1月~1997年6月试用南京金陵制药厂生产的脉络宁治疗脑梗塞62例,经临床观察效果满意,现报告如下:1临床资料1.1一般资料:120例均系我院内科住院病人,诊断符
继发感染的皮脂腺囊肿的外科处理附属第二医院外科(325027)叶云奎[关键词]皮脂腺囊肿,外科手术皮脂腺囊肿是体表常见的假性肿瘤,常不被患者所重视,一旦继发感染便引起局部肿痛或破溃,这时患
互联网的到来,使计算机行业蓬勃发展,各公司的业务数据也都到达P级别的数据量。本文结合Hadoop框架的中Hive和Hbase,对各个模块进行了详细的描述,重点分析了集群搭建步骤,及如何对集群的数据进行采集和清洗,并通过建立表来存储分析结果。
先天性主动脉缩窄伴多指(趾)及小胸廓畸形一例病理学教研室邵黎明患儿男性,出生后两小时收住附属育英儿童医院,住院号81946。患儿足月顺产,体重3150克,出生后即哭,Apgar评分9分,全身轻度发绀,吸氧后发