基于Cesium和WebGIS的水文站点信息管理
2021-10-23周信文张发勇许小华
周信文,张发勇,罗 津,许小华,罗 宁
(1.江西省水利科学院,江西 南昌 330029;2.中国地质大学地理与信息工程学院,湖北 武汉 430074;3.江西师范大学地理与环境学院,江西 南昌 330022;4.武汉智博创享科技股份有限公司,湖北 武汉 430223)
水文站信息管理的水平是衡量水文工作效率和水利信息化的重要方面,而运用WebGIS技术对站点信息进行科学管理可以有效地避免信息传输缓慢、低效,信息更新周期长、大量消耗人力物力等缺点。随着地理信息系统和网络技术的发展,基于WebGIS的水文站信息系统在我国水利信息化建设中已得到广泛应用,如董玲燕[1]利用WebGIS技术建立的水电站水资源管理信息系统,实现水电站的信息管理,空间统计等功能。李雅丽[2]等基于WebGIS技术,实现水文数据的集成管理,包含数据的分级可视化显示、图文查询和统计分析等功能。
近几年WebGL、虚拟仿真技术飞速发展,Web3D技术与GIS技术相结合而形成的WebGIS已成为水文信息可视化发展的一个重要方向。Cesium便是一种轻量级的开源三维WebGIS开发框架,可以集成不同来源的数据,如OpenStreetMap、Bing Maps、ArcGIS地图服务、天地图和标准图像文件,用户可以方便地对Cesium三维地球加载的图层进行GIS地图基本操作[3-4]。开发人员可针对不同领域、不同层次用户需求,在Cesium原有功能基础上进行定制构建基于WebGIS的三维数字地球可视化系统[5-6]。杜鹏[7]基于 HTML5 和 WebGL 技术设计开发的气象三维系统,实现了数字地球表面地理信息数据的叠加显示以及量测、空间查询等 GIS 功能。阚文生[8]基于 Cesium 数字地球平台,综合运用 Echarts 等开源技术,在 Internet 环境下进行全球范围内的数据二维、三维可视化。
本文提出基于Cesium的WebGIS水文站点信息管理系统,不仅具备WebGIS跨平台、易共享、维护方便等特性,还能通过Cesium在三维地图上自定义加载遥感影像等空间数据和水文站点属性数据,实现水文站点空间信息和属性信息二、三维一体化存储、管理、查询、统计等功能,并结合前端Echarts图表技术对统计查询结果进行实时可视化展示,为水文站点信息的高效管理和位置合理布局提供决策支持。
1 系统总体设计
1.1 总体架构设计
水文站点信息管理系统从结构设计上分为5层,分别是用户层、应用层、逻辑层、数据层和支撑层[9]。如图1所示。
图1 系统总体架构
用户层主要可分为普通用户、管理用户、维护用户。根据系统对用户角色的权限分配,普通用户负责系统的使用,包括水文站点的三维地球场景浏览,系统各模块功能使用等。管理用户主要负责系统的用户、角色、权限设置与管理。维护用户主要负责系统的运行维护、参数设置、数据库备份等。
应用层主要负责整个系统的图形界面展示。本文研究利用Vue前端框架结合Cesium设计并实现三维数字地球WebGIS平台,其中利用编写好的Vue功能组件,完成系统的界面布局设计、实现基本的交互功能;基于Cesium官方提供的开源接口嵌入Vue框架完成Web端三维数字地球的加载。用户通过前端功能菜单界面对三维数字地球可视化系统进行交互,后端服务器会接收用户的请求并及时完成响应,在前端界面展示符合用户需求的水文站点信息可视化结果。
逻辑层由负责前端功能交互的代码和后端服务环境配置两部分组成,是整个三维数字地球可视化系统的核心部分,构成基于异步响应的单页面程序[10]。程序前端模块功能代码都有各自对应的功能组件组合而成,它们由Vue前端框架结合其他前端开源技术共同编写。这些功能组件通过传递前端用户的交互请求,无需对前端界面进行刷新[11],与后端服务器和数据库进行交互响应,实现后端存储的水文站点数据在前端三维数字地球上可视化展示、空间查询与统计、图层管理等功能,其中后端服务器包括Tomcat应用服务器和Geoserver地图服务器。
数据层主要是存储和检索数据,可通过SQL Server或oracle对数据进行集成管理。它可以根据前端用户的界面交互请求,将相关的数据服务反馈给逻辑层,是整个三维数字地球可视化系统的数据中心。本文研究的系统数据层主要包括卫星遥感影像、DEM数字高程模型数据,研究区域行政区划数据、等矢量、栅格空间数据,另外则是用于解释空间数据附带的属性数据。
支撑层是系统正常稳定运行的基本保障,主要包括操作系统、专用网络、服务器集群等支持系统运行的网络、软硬件环境。
1.2 数据库内容
水文站点数据大致由非空间与空间数据组成,空间数据包含站点所在区域的卫星影像栅格和行政区划等地图数据。因为空间数据都是通过Geoserver服务器发布,无需存储在数据库中,因此本文数据库存储的数据主要包含系统用户角色资料数据、水文站点相关的属性字段数据和描述地图数据信息的属性数据等一系列非空间数据,具体说明如下。
(1)用户资料数据。对系统角色分别赋予相应的数据和功能执行权限,并可进行相关操作。用户在使用系统前,都需要使用特定账号登录,不同账号用户会匹配不同角色权限,系统会根据分配的权限限制每个用户的功能使用。因此,用户资料数据保存了所有用户角色的相关信息。
(2)空间数据的属性数据。遥感影像、矢量地图和高程地形图同样包含各自的属性信息,比如保存在Geoserver服务器中WMS数据同样存在中英文名称、起始显示级别、URL、版本号,这些信息在调用地图时都需要通过数据库提前存储好的数据来获取。
(3)水文站点数据。因为本文系统是对水文站点进行管理,需要对水文站点的空间分布进行可视化展示,其数据信息包括站名,地址,站点类型,经纬度坐标等相关属性信息。根据水文站点信息可视化需求,本文系统数据库分包含的数据表主要有:用户角色表、WMS图层表、水文监测站点表。
1.3 功能模块设计
基于Cesium的WebGIS水文站点信息管理系统,根据不同用户使用需求,系统功能设计主要包括三维地球场景展示、水文站点查询、水文站点统计、水文站点编辑、角色权限5个模块,各模块又由若干子模块组成,系统功能设计如图2所示。
图2 系统功能设计示意图
水文站点信息管理系统主要实现以下功能。
(1)三维地球展示模块。该功能模块主要提供对三维数字地球场景的加载和浏览功能。其中,图层管理提供丰富的图层控制功能,如卫星图、三维高程图、2D平面图等,用户还可以自定义控制需要显示的图层,支持创建图层、创建图层组、加载图形,对地图数据进行基本的放大、缩小、平移、旋转操作等。场景设置则是通过勾选、调节地形、雾、白天黑夜、大气层色调、饱和度、亮度、状态栏等状态,调节三维数字地球场景的显示效果。
(2)站点查询模块。该功能模块主要通过属性查询、范围查询、缓冲区查询操作实现对水文站点信息的查询结果与三维视窗交叉定位显示。
(3)站点统计模块。该功能模块根据缓冲区统计、范围统计、属性统计菜单操作实现对水文站点数量进行统计,并可将统计结果通过饼状图、柱状图、折线图进行可视化分析展示。
(4)站点编辑模块。该功能模块针对地图中显示的水文站点进行编辑,可进行坐标变换及删除操作。
(5)角色权限模块。从保障系统安全的角度出发,对登录系统用户角色进行功能使用权限分配。通过不同用户分配不同的角色权限,可以限制每个用户可操作的系统功能范围,包括站点查询、统计、编辑等功能的使用。
2 系统功能实现
地理数据是用一定的测度方式描述直接或间接关联着相对于地球某个地点的数据[12],本文系统在开发过程中使用的地理数据有,湖北省宜昌市水文站点要素数据,宜昌市行政区划图、天地图遥感影像、DEM等基础地理空间数据,规范化处理后的专题属性数据。前两者通过Geoserver服务器发布,后者专题属性数据借助Excel、Access等工具导入Oracle数据库存储,属性字段既包括站名、监测河流名称、地址、站点经纬度等非空间属性又有经度、纬度空间属性。Cesium平台以二维和三维的兼顾方式描述地理空间信息,将非空间数据与空间数据建立关系,能够实现对全球任意范围内多源地理空间数据进行集成、查询、共享[13-14]。基于Cesium的WebGIS水文站点信息管理系统的主用户界面系统的主要功能包括地图操作功能、水文站点查询功能、水文站点统计分析功能、用户权限控制功能,如图3所示。
图3 系统主用户界面
2.1 地图操作功能
整个系统地图操作功能包括地图显示、图层管理、场景设置。
(1)地图显示,实现过程用到由Geoserver服务器发布的WMS和WFS影像服务,前端利用Cesium API调用WMS和WFS,从而在三维数字地球中呈现遥感影像地图。其中WMS调用只需在代码中添加对应服务即可,WFS 则提供地理数据图层可视化服务[15],水文站点叠加后图层实际显示效果如图4所示。
图4 图层叠加显示效果
地图基本操作包括基于三维数字地球的地图显示、漫游、缩放和图层选取,鼠标左键选中地图,通过长按鼠标左键控制其上下左右移动就可以同步对三维地图进行移动查看。滚动鼠标的滚轴即可缩放地图,放大看地图的细节,缩小看整个三维数字地球。点击地图中的水文站点图标要素,可弹出其对应的属性框,点击显示水文站其对应属性弹窗的效果,属性窗口展示的字段包括测站名称,所属河流、水系、流域名称,经纬度坐标和地址等。
(2)图层管理,主要提供对所有加载到当前视图的数据图层进行管理,通过图层管理面板,用户可以对三维数字地球展示图层进行切换操作,同时还可以控制当前视图的数据图层显示与隐藏。
(3)场景设置,主要针对三维数字地球场景的地图三维效果进行调整设置。通过点击2D/3D来控制三维数字地球场景的二维/三维显示模式,勾选雾、白天黑夜、大气层色调、饱和度、亮度等状态栏,来调节三维场景的显示效果,系统3D模式下,显示效果如图5所示。
图5 地图三维显示模式
2.2 水文站点查询
本文的水文站点查询功能可通过多种方式实现对查询信息的提取,并将提取的范围信息与三维数字地球进行联动显示,从而满足可视化应用需求。在本文研究中,查询菜单包括属性查询、范围查询及缓冲区查询。其中属性查询包含水文站点管理机构和普通站点查询。管理机构的查询条件包含管理机构编码和名称,两者可联合查询;普通站点的查询除了自身名称外还可以基于其管理机构的编码和名称进行联合查询。属性查询结果还具备字段过滤显示、属性查看、删除、编辑、定位、报表导出Excel功能。基于Cesium也实现了常用的几何条件查询,即范围查询功能。它包括多边形、圆形、矩形3种查询方式,三者都以操作的空间范围作为限定条件进行查询。用户在地球上用鼠标绘制多边形、圆形或者矩形框,查询绘制区域范围的图层要素信息,并将查询结果与地球进行联动弹窗显示。例如,基于用户绘制的多边形范围,多边形查询结果包含3类,分别为雨量站、水文测站、水位站。
2.3 水文站点统计
水文站点统计是本文水文站数据可视化的核心功能之一,统计功能是基于上述水文数据查询功能基础上,再结合Echarts前端插件个性化定制图表[16],对查询的属性结果进行数量计算,然后可以自由选择进行饼图、条形图、折线图等可视化展示方式。数据统计模块包含属性、范围、缓冲区3种统计可视化方式。以缓冲区统计为例,本文系统缓冲区,目前只支持点状缓冲区统计。系统缓冲区统计的实现效果如图6所示。
图6 缓冲区统计
首先输入点缓冲区范围参数(半径50000m),然后基于范围内的查询结果进行图形可视化展示,根据处在统计范围内的站点,弹出窗口面板对各站点类型数量进行统计并展示。
2.4 系统权限管理
系统权限管理就是系统根据用户类型,设定不同的数据权限,用户登录系统,系统会自动判定用户的数据操作权限。用户可用相应是权限对数据进行增加、删除、修改、查询等操作。用户操作数据的权限按“用户—角色—权限”进行,一个用户一般只创建一个帐号,个别用户可以创建2个或多个帐号,角色可以按部门进行划分和授权,一个用户帐号对应一个角色,角色可以分配一个权限,2个权限,甚至全部权限。本文水文站点信息管理系统的权限控制模块包含3个功能,分别是部门管理、用户管理、角色管理三大块。
其中用户管理与部门管理类似,主要基于用户层面对用户角色进行维护,而角色管理是针对系统每个角色进行权限分配,系统功能权限的控制主要通过在对应的树状功能条目上进行勾选与不勾选状态,然后根据修改的状态进行数据库保存,实现数据权限的控制,包括数据查询、数据统计、属性查看、定位等功能的权限分配。
3 结论
本文基于Cesium构建的三维数字地球可视化系统框架,实现了与系统界面交互联动的
WebGIS站点信息管理,主要包括三维数字地球地图显示模块、水文站点信息查询模块、水文站点信息统计模块和系统权限管理模块。以宜昌水文站点的管理进行实践,结果证明该系统能够满足水文部门相关用户的基本需求,为推动水利行业信息化建设提供有效的技术支持。