gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:4524回复:0

基于OpenScales的水文遥测WebGIS应用开发

楼主#
更多 发布于:2015-05-26 10:07
摘  要:结合水文遥测信息管理的业务需求,对于在OpenScales开源GIS平台下如何开发WebGIS应用软件展开讨论与分析。简要介绍OpenScales提供的功能特性、应用模式及开发环境的搭建,详细阐述软件集成开发方法,以及及电子地图整理展示、雨量等值线(面)热图分析、OpenScales组件功能接口扩展等关键技术特点。以期在开源GIS平台下开发水利应用软件提供一种新的思路和选择。
关键词WebGISOpenScales;水文遥测;遥测信息;GIS应用;热图分析
 

0 引言


 
目前,水文遥测信息已经广泛地应用于各级部门的防汛决策过程当中。国家防汛抗旱指挥系统工程一期工程的成功实施,建成了5个流域机构和19个省区市所属的125个水情分中心,实现了上述地区水文信息的自动采集和处理[1]。此外,部分地区和部门根据实际需要,也建设完成了数量众多的遥测系统。遥测应用系统作为各级防汛抗旱指挥部门领导高度关注的水利信息化应用系统之一,为防汛抗旱服务发挥了重要作用。
随着水利事业的快速持续发展,对遥测应用提出了更高的要求;同时,技术的进步也为系统的升级和完善提供了扎实的基础和实现手段。充分利用现代化的信息技术和成果,提升水文遥测应用水平,拓展应用范围和深度,对于提高防汛抗旱决策服务能力具有重要意义。
近年来,水文遥测应用软件开始与GIS结合,通过采用静态地图图片的方式开发了水雨情显示、预警和监控等方面的功能。用户在本地计算机上使用浏览器,通过网络就可以访问遥测软件提供的包含有地图在内的遥测信息服务,具备了WebGIS应用的一些特点。但是,这一类遥测应用软件由于不能支持标准的矢量数据格式,在地图缩放、漫游、分级显示和站点修改扩充方面存在很大的局限性。而一些结合商业化GIS平台开发的遥测应用软件,具备较完善的GIS功能,但是所需GIS平台购置和开发的费用较高,很难将这种模式推广应用到一些基层的水利单位。基于这些因素,在开发这类应用时,应考虑能否在大量廉价的开源GIS平台中,找到一种GIS功能基本完整,表现效果突出,适合Internet网络应用,支持现有主流开发工具的轻量级GIS平台,以满足遥测应用软件对GIS功能日益增长的需求。经过一段时间的摸索和试验对比,发现OpenScales平台是一种比较合适的选择。
 

1.     OpenScales平台概述


 
Web GIS是将WebGIS技术相结合的新技术, 以常见的网页方式提供地理信息服务, 在许多行业有着广泛的应用[2]
早期的WebGIS采用瘦客户端模式,地图处理工作主要是在服务端完成,采用由客户端向服务端请求图片的方式进行地图的显示,速度较慢。2004年,Googlemap采用地图切片技术,显著提高了客户端加载图片的速度。新发展的RIA(富互联网应用)技术,以Flex ,Silverlight为代表,使得WebGIS提高速度和客户体验[3]
大多数WebGIS应用软件开发采用商业化的GIS平台,如ARCGISmapinfo,超图GIS等。优点是功能完整,空间数据管理和分析能力强;缺点是平台购置和管理维护费用较高,运行环境要求较高,软件开发接口没有完全开放,扩展性受到一定限制。
OpenScales是一种基于ActionScript3.0Flex的开源(LGPL)地图应用开发框架工具集合[4],这些用户界面友好、响应迅速的工具适合用于操作空间数据,例如地理栅格图像、矢量数据编辑,管理缩放和定位之间的平滑转换等。借助于这一工具,用户可以非常方便地开发富互联网地图应用程序。
OpenScales起源于FlexLayers开放源代码项目,融合了多个开源AS3/JS GIS项目。从OpenScales项目开展以来,OpenScales已经对原有基础代码进行了广泛的修改和完善,使其成为一个具备良好适应性的GIS引擎。目前最新版本为OpenScales V2.0,主要功能特点包括:[4]
1)支持多种不同的图层,兼容支持OGC的多种协议,包括WMS/WMS-C 1.1.1, WFS 1.0等;
2)经过优化的ActionScript 3内核代码,支持Flex 4
3)利用FLASH功能,提供强有力的矢量数据绘制、编辑、造型;
4)提供功能丰富的样式API,支持弹出窗口;
5)实现快速矢量渲染,增加了平移,缩放和图片拼接的渐变效果;
6)支持在运行时通过XML配置,从经过编译的SWF应用程序动态获取地图;
7)强大的控制和处理程序组件,可以帮助用户快速开发地图应用程序。
OpenScales适合于运行在各种类型的设备上,包括便携式移动及桌面设备,支持当前的大多数互联网浏览器[4],近期发布的OpenScalesGL还提供了对HTML5的支持。
OpenScales提供几个关键的基本类以支持地图应用的开发,主要包括:
1Map。允许在指定范围内显示1个或多个图层。基于用户输入,例如鼠标和键盘,可以改变范围和缩放程度。
2Layer。实现图层点、线、面的矢量绘制,主要包含2个类型的图层,其中特征图层主要描述带有一些属性和样式信息的几何体数据,Grid图层则处理地图图片数据。
3)Handler。通过监听用户输入(鼠标,键盘)实现地图漫游、缩放、绘制等操作的处理。
4)Controls。用来显示按钮、滑块,以允许控制地图的GUI(图形用户界面)组件。
一般来说,水文遥测应用软件对于WebGIS平台的需求主要集中在以下几个方面:
1)将采集到的水雨情信息,经过分析处理后,对用户关注的重要信息,在地图上的特定区域范围内加以直观和突出的显示、预警,并支持查询和报表输出。
2)随着用户关注点和区域的变化,对应地图的大小、粒度、地理要素信息等能够相应调整。
3)可以加载大多数通用格式和类型的地图数据,并快速加以显示。
4)支持矢量图形绘制,以便进行雨量柱状图、水位过程线、流量过程线、等值线(面)、热点图、分布图等业务用图的绘制与输出。
相对而言,软件对于空间分析计算等方面的要求不是很高。因此,综合考虑到这些因素,我们选择基于OpenScales平台进行开发。
 

2.     水文遥测WebGIS应用模式及开发环境


 
典型的水文遥测WebGIS应用由OpenScales平台,数据库管理、文件、Web服务发布管理系统,Web service应用组件,计算机网络,应用终端等组成。应用模式如图1所示。
1 系统应用模式示意图

完成上述应用的开发与部署,需要搭建基本的开发环境,主要包括以下工具集和组件开发包:Flash BuilderFlash DevelopOracle Java 6 SDKFlex SDK 4.1Flash player debugger 10.1Visual Studio 开发工具,svn(subversion)版本管理工具。
 

3.     水文遥测WebGIS应用软件实现方法和功能简介


 

3.1.软件实现方法


开发的水文遥测WebGIS应用软件采用扩展了的BWDBrowse/Web/Database )体系结构,主体程序部署在服务器端,遥测数据存放于数据库当中,电子地图数据大部分以文件方式存放在服务器端,以B/S(浏览器/服务器)方式提供服务。
位于服务器端的软件由Flex主控、信息查询及报表Web service、数据库接口Web service  3个模块,等值线分析组件,以及相关网页资源文件等组成。系统软件模块组成示意图如图2所示。
图2 系统软件模块组成示意图

Flex主控模块基于Flex技术开发。电子地图功能部分通过调用和扩展OpenScales相关类库完成,如地图加载显示、操作控制,快速定位,图层叠加等。信息查询、图表绘制、菜单按钮、超限预警等功能采用ActionScript编程实现。主控模块的各项功能以过程及方法的方式提供调用接口。
考虑到原有的遥测应用软件在信息查询和报表生成及打印方面已经做得相当完善,在软件开发和集成时,通过将原有此部分功能模块修改封装成标准的Web service加以调用。此外,统计分析和系统管理的部分功能模块也采用这种方式完成集成。
数据库接口Web service主要提供数据库数据的访问和提取,以多个封装在内的方法提供调用接口,采用C#编程实现,目前可以支持对OracleSQL serviceACESS数据库的访问。
等值线分析组件负责分析雨量数据,生成雨量等值线。此模块根据传递过来的雨量数据,通过插值分析,生成雨量等值线绘制需要的矢量数据,返回给调用的Flex主控模块。主控模块利用这些矢量数据,再调用绘图类库完成在地图上的等值线绘制。这一模块用C++编程实现,以COM组件方式提供调用。
软件完成部署后,用户终端使用浏览器首次访问网站主页时,系统会自动下载电子地图的数据到本地计算机,今后再访问网站时就不再需要下载地图数据。由于所有地图数据都已经过压缩优化,首次下载过程在通过互联网访问时也只需要几秒钟,本地局域网访问时用户几乎感觉不到停顿。
因为地图数据存放在用户终端,所以地图操作响应速度很快,用户可以很流畅地在地图环境下完成遥测信息展示及监控、查询、统计和系统管理维护等模块的调用和操作。
 

3.2.应用功能简介


1)信息展示及监控功能。模块主要功能包括加载和显示特定区域电子地图,进行放大、缩小、拖动漫游、显示站点信息等操作;快速定位指定站点或区域并显示相关雨水情信息;自动显示当前一段时间的雨量、水位;对雨量进行等值线分析,计算绘制等雨量面、面雨量等信息;控制各图层的显示方式及雨量、水位的显示级别等。如果有超警信息,则进行闪烁报警。
在操作电子地图的过程中,鼠标滑动到1个站点后,可以显示站点的详细信息。点击鼠标左键,则显示该站的设定时间段的图表信息。在图表上点击特定日期图形,可以显示该日各时段的雨量柱状图或水位过程线。根据需要,可以在界面输入新的时间进行重新查询,如果输入时间段较长,可以通过左右箭头来调整显示时间轴。雨情信息展示示意图如图3所示,水情信息展示示意图如图4所示.
3 雨情信息展示示意图
4水情信息展示示意图

2)信息查询功能。用于查询各地区的雨量和水情信息,查询结果用表格显示,并可以导出为Excel文件。
3)雨量信息统计分析功能。用于统计某个时间段,各地市、县区、分中心所辖的雨量站的降雨量,查询结果保存在1个报表中,并可以导出为Excel文件。
4)系统管理维护功能。用于查询显示各遥测站的原始信息,以便于对站点进行维护。可以在地图上直观显示有故障的站点,故障站点以高亮颜色显示。
 

4.     水文遥测WebGIS应用关键技术


 

4.1.GIS组件应用和电子地图整理


融合GIS应用是水文遥测WebGIS应用软件的主要特色之一,包括图层控制、放大缩小、拖动漫游、全区域显示、标注、空间对象的常规计算(距离、面积)及地图的临时绘制等。数据查询显示以电子地图为核心,实现分类分层分级显示。分类包括实时水文、站点物理状态及概况等要素;分层分级显示重点是涉及密度相对较高的降水要素。
本软件的实际应用对电子地图的比例尺精度要求不是很高,用户单位不需要花费很大代价就可以得到所需数据。电子地图流域范围部分采用1:250 000比例尺,省级行政区采用1:1 000 000比例尺。所需的地图数据经过适当的校正、裁剪、修补等预处理工作后,以符合通行标准的格式文件提供调用。软件所用图层主要分为以下几个层面:
1)行政区划图层。省、市、县、乡镇区域与分界线及文档标识图层。
2)河流图层。干流,一级、二级支流,以及有水文(水位)站点的河流图层(线、面、文档标注)。
3)流域边界图层。主要江河、大型水库、中小河流等流域界线。
4)水利工程图层。包括大、中、小型水库,大、中型闸,大型泵站等水利工程图层。
5)站点图层。包括水文、水位、雨量、墒情、地下水等站点。
6)水文分区边界。指特定水文区域分界,例如安徽省淮北平原、江淮之间、沿江江南、大别山区、皖南山区等水文分区边界划分。
 

4.2.雨量等值线(面)分析


软件内置了雨量等值线(面)分析功能,雨量等值线(面)分析示意图如图5所示。
5雨量等值线(面)分析示意图

除具备常规的雨量等值线分析功能外,还具有以下特点:
1)参加分析的站点默认为选定区域内全部站点,具备添加或减少参与分析站点的功能,因为出现异常的点可能需要在绘图时临时剔除。
2)可以定义配置等值线间隔阀值。一般为5102050100 mm,特定时间段内查询结果根据最大值确定默认阀值,以减少交互时间,最大值不超过10 mm时,以5mm为下限。
3)等值线(面)风格设定。包括颜色、线条粗细、等值线标注文字的大小、颜色设定。特定时间段查询结果根据最大值自动提取默认设定,确定不同数值域的色谱变化。
4)可以将1个时间序列的降雨图进行动画显示,通过动画可以更细致的观察降雨的发展趋势。采用矢量数据动画技术,在动画时可以随意放大、缩小、漫游,图面都不会变形,可以将某局部地区的降雨情况放大到全屏显示,便于会商分析。提供雨量分析结果图片和分析数据转存功能,以便在其他应用中使用。
 

4.3.雨量分析热图


雨量分析热图是根据雨量站点的地理位置,对区域内所有站点的雨量根据区域和颜色进行相应的可视化表现。通过将每个雨量站点的覆盖范围设定为1个特定的计算区域,根据正态分布原理计算出区域内的雨量值。再对站点相邻区域相交或重叠部分进行处理,然后将区域内每一点的雨量值转换为相应的颜色在图像当中加以呈现。
由于现有的雨量等值线在实际应用当中也存在一些局限性,例如在雨量等值线图当中模糊了等值线范围内数值存在差异的点,对于高出或低于所在等值线区域的站点雨量无法加以区分等。作为一种有效的补充分析工具,热图可以更加真实、直观地表现降雨密度及分布情况,不同区域和站点之间的雨量对比更加明显,有助于进一步分析降雨发展趋势。
 


4.4 OpenScales组件与接口的功能扩展和改造


1)新增部分自定义GIS数据源格式。采用XML文档格式进行定义和描述,包括基本点、线、面及等值线、等直面矢量数据等。在Map_cgPolygonFeature_cgUtil_cgPointFeature_cgLineStringFeature_cg等关键类基础上,扩展开发相应的ActionScript调用类代码, 以支持此类矢量数据的解析、加载、绘制和分级显示。
2)扩展ARCGIS影像切片的加载功能。为充分利用已有ARCGIS平台生成的影像切片,保持一致的区域影像显示效果,根据ARCGIS影像切片的命名规则,扩展开发了对应的类库。
3)扩展地图要素标注功能。实现同一要素点标注多项信息,并且能够根据点的大小自动适应位置。解决了同一位置需要同时显示站名、雨量、水位等信息的需求。
4)扩展图例图标添加功能.。实现围绕标注点中心自由调整放置位置和角度,实现图标矢量缩放和动态添加功能,增加图标上下文字标注。解决了一些图例图标对标注位置和方向有特定要求的问题,如水闸、水文站等。同时保证地图在缩放时,对应的图标也相应缩放、显示而不失真。
5)实现通过点、面信息快速定位,相应热点区域高亮显示。用户通过站号、站名、区域名称或点击相应位置可以快速居中定位该区域,该区域被突出高亮显示,很容易同周边其它区域区分开来。
 

5.     结语


 
如同许多开源GIS系统一样,OpenScales也存在不少缺陷和局限性,如在空间分析、中文支持、三维建模和表现等方面功能较弱,对使用者软件编程基础要求较高,开发案例和文档较少,也是较为明显的问题。此外,在水文遥测实际应用过程中,发现在矢量线型种类、地图图例、标注内容、类库参数引用等方面还需要改进和提高。因此,在基于这一平台做开发时,对这些因素需要加以综合考虑。在实际开发过程中,对OpenScales部分组件和功能做了很多扩展和改造,在满足用户单位需求的同时,进一步扩充了OpenScales的功能。
OpenScales平台的优势在于功能齐全,源代码开放,扩展灵活而且成本低廉,特别有利于根据实际需要进行技术改进和创新,并逐步掌握核心开发技术。可以为一些需要较低GIS平台投入,获得好用、够用GIS应用功能的用户提供一种切实可行的选择。基于OpenScales平台开发的水文遥测WebGIS应用软件在继承原有遥测信息系统软件优点的基础上,为用户提供了直观易用的交互式电子地图环境,并可以进行雨量等值线、雨量分析热图的绘制。采用此项技术开发的遥测应用软件已经在淮河水利委员会、安徽省、河南省等水文局,以及部分地市水文局得到实际应用,为所在区域的遥测系统管理和防汛决策提供了一种直观易用、快捷高效的软件工具,得到了用户单位和部门的肯定与认可。
 
            (本文登载于《水利信息化》2012年第3期)
 


作者:马泽生 刘小虎 蔡国成 梁后军
喜欢0 评分0
游客

返回顶部