APP下载

网页地理信息服务子系统设计与应用

2022-09-20左世祥张晓锋李志军陈建华

科技创新与应用 2022年26期
关键词:开发人员漫游子系统

张 倩,孙 玉,潘 芸,左世祥,张晓锋,李志军,陈建华

(1.阿坝州自然资源与科技信息研究所,四川 汶川 624000;2.成都理工大学 地球物理学院,成都 610059;3.成都理工大学 地球科学学院,成都 610059)

随着互联网技术的快速发展,空间地理信息在各行各业中变得越来越重要[1]。由于地理信息渗透领域广泛,当面对空间信息化日新月异变化时,传统地理信息系统(Geographic Information System,GIS)搭建方式逐渐突显出一些制约因素,主要有以下几个方面。①平台建设周期长。传统开发模式从了解需求到搭建系统框架再到编写代码,开发时间长、效率低。②代码复用率低。对于一些简单的适用于所有场景的基础地理信息功能未作封装,使得后续系统存在重复建设的情况,导致代码复用率低。③系统维护困难。过多的冗余代码导致系统维护困难,不可预知的开发风险上升。④对开发人员队伍素质要求高,开发成本高。当团队核心开发人员岗位变更时,开发风险将放大,严重制约着项目的健康发展。

地理信息系统是一门交叉学科也是一个技术系统,其涉及地图学、地理学和计算机科学等多种学科。同时,也是以地理信息数据为支撑,地理算法模型为辅助工具进行数据分析,为地理研究、地理决策提供帮助的计算机系统。目前GIS在室内定位[2]、车载导航[3]、路径规划[4]、城市建设[5]、地下管道维护[6]、交通管理[7]和环境保护[8]等领域被广泛应用,有较好应用前景和应用价值。二维地理信息系统是在二维平面上进行地理信息处理和空间分析的技术系统,经过多年的发展,其强大的地理信息处理和空间分析能力已得到充分挖掘和应用。

网页地理信息系统(Web Geographic Information System,WebGIS)是互联网技术与地理信息技术相融合的产物,是传统地理信息系统在网络上的延伸和发展[9]。WebGIS基于B/S(Browser/Server,浏览器/服务器)模式,客户端与后台服务依托网络进行数据传输。WebGIS平台与传统GIS软件相比界面美观、使用便捷,有助于地理空间数据管理、分析[10]。由于WebGIS是GIS在网络上的延伸和发展,所以其应用领域相较于传统GIS更加广泛,是大多数GIS应用场景的首选解决方案[11]。WebGIS以二维平面呈现方式,多使用开放图层(OpenLayers)等开源库设计实现,有着丰富的地理信息处理和空间分析功能,在监控预警[12]、国土规划[13]和城市管理[14]等领域得到广泛应用。

鉴于此,本文基于WebGIS技术设计实现了二维地理信息服务子系统。以此为基础进行地理信息平台搭建能够降低项目风险,缩短开发周期,提升代码复用率,节省项目维护更新时耗费的时间和经济成本,帮助开发人员将更多的时间投入到地理信息功能拓展研究中。

1 关键技术

1.1 空间服务搭建

空间服务有2类,一为提供空间分析功能的空间服务,二为提供空间数据支持的空间服务。第一类空间服务由基本的Web服务器提供,主要负责通用空间分析功能的业务逻辑处理和空间数据库的增删改查,多用于具体空间分析功能,如缓冲区分析等。第二类空间服务由空间服务器提供,主要负责处理客户端读取地理数据的请求[15],多用于二维地理场景构建。本系统基于开源的地理服务器(GeoServer)搭建空间服务,负责各种地理数据的发布与切片。

1.2 二维地理场景构建

二维地理信息服务子系统依托二维地理场景的构建,能够对地理信息进行可视化展示。但是仅依靠矢量图层来构建二维场景是不够的,为了得到更真实的场景体验还需结合影像图来进行展示。OpenLayers是一个轻量级的开源JavaScript框架[16],提供了许多可操作的接口,可为Web客户端提供基础的地图数据展示和地图操作功能,具有扩展性强的特点。在地图操作方面可帮助开发者实现图层缩放、漫游及选取要素点、线和面等基本的操作功能。本文利用OpenLayers对二维地理场景进行构建,其总体流程如下。

(1)创建OpenLayers类,并构建实例化方法获取虚拟地图对象Map。

(2)设置全局变量储存图层指定的服务器端URL地址。

(3)实例化矢量图层(VectorLayer)对象,并将图层地址赋值给VectorLayer对象下的VectorSource属性以指定图层数据的来源。OpenLayers同时支持多种数据格式和Open GIS协会制定的网络对象服务(WMS)、网络要素服务(WFS)和网络地图切片服务(WMTS)等网络规范,因此可对远程空间服务发起请求[17],并对请求回来的对象(json)数据或图片(png)数据进行数据解析和渲染,渲染时可以特定样式渲染到地图场景中。在请求和渲染过程中,为避免一次性请求全部数据导致浏览器卡顿,限制了数据的请求范围为当前视图范围。

2 系统设计与实现

2.1 系统设计

系统结构通常归纳为3个层次:表现层、业务层和数据层。表现层一般作为人机交互的接口而存在,即基于B/S模式的Web浏览器和基于客户端/服务器(C/S)模式的应用客户端。业务层接收业务请求,进行业务处理,包括对数据库的处理及对业务逻辑的封装。业务需求通常是复杂特殊的,因此业务层是3层结构中最具有特殊性和灵活性的1层。数据层完成数据的安全存储。3者间的数据传输通过网络请求进行,整体结构如图1所示。

图1 系统设计图

2.2 系统功能实现

WebGIS二维地理信息服务子系统采用面向对象的方式编写。面向对象编程具有封装性、继承性及多态性特点,可满足模块功能的需求。为了让子系统适用于多行业地理信息平台建设,于是对部分通用GIS功能进行了封装实现,主要有4大模块。地理数据展示模块:对矢量地理数据、栅格地理数据进行展示;场景设置模块:对二维场景中的地理图层范围、缩放层级进行设置及对场景中的控件显示与否进行控制;空间计算模块:对二维场景中的空间距离、面积进行测量及对要素进行缓冲区分析;基础功能模块:该模块包括图形绘制模块、坐标定位模块、轨迹漫游模块和动态信息展示模块等功能模块。各个功能模块以接口的方式对外提供相应服务保证了灵活性,开发人员可根据自身项目需求设置不同参数自定义功能。模块间的功能调用也可作为服务提供方式,保证了系统的高内聚低耦合,提高系统的容错性,降低开发风险。

2.2.1 地理数据展示模块

地理数据展示模块包括对矢量数据、栅格数据及矢量图形要素进行展示。客户端以指定网络规范向GeoServer空间服务器请求已切片的地理空间数据并以特定样式渲染到地图场景中从而完成地理数据展示(如图2所示)。

图2 矢量图层

2.2.2 空间计算模块

空间计算模块部分包括在二维场景中对空间距离、空间面积的测量(如图3所示)及对要素进行缓冲区分析(如图4所示)。该模块功能常用于对地理信息做空间分析。其中缓冲区分析应用范围广泛,一般用于分析矢量实体对周围的影响。例如分析工厂排放废水废气所影响的空间范围。

图3 计算测量

图4 缓冲区分析

2.2.3 图形绘制模块

图形绘制模块中绘制方式分为手绘、非手绘2种,绘制模块留有可供开发者自定义的接口。当开始绘图时,开发人员可根据自身项目需求设置对应参数对图形要素的样式、属性进行修改。绘图结束时,图形要素的坐标、样式等数据将自动返回给用户,便于用户进行下一步工作(如图5所示)。

图5 图形绘制

2.2.4 轨迹漫游模块

轨迹漫游模块根据用户传入的经纬度坐标数组创建轨迹线,再以此进行漫游。漫游开始前,用户可自定义漫游速度、漫游层级、漫游轨迹样式和漫游要素样式。漫游过程中,用户可自主调整播放视角和选择是否进行重播(如图6所示)。

图6 轨迹漫游

2.2.5 信息展示模块

信息展示模块可对二维地理场景中的点、线和面要素以弹框的方式进行信息展示,展示内容包括基础地理信息和用户自定义信息,且弹框样式可由用户自行定义,包括弹框颜色、弹框宽度、弹框高度和字体颜色(如图7所示)。

图7 信息展示

2.2.6 坐标定位模块

坐标定位模块可直接定位至用户自定义的任意坐标点,且定位时的地图层级及是否在中心显示该坐标点可由用户自行选择(如图8所示)。

图8 坐标定位

2.3 实例分析

WebGIS二维地理信息服务子系统成功构建后,基于该子系统快速搭建的阿坝州牦牛智慧牧场管理系统正在投入使用(如图9所示)。管理者利用阿坝州牦牛智慧牧场管理平台对牦牛进行管理监控,帮助牧企与牧民省时、省力、高效及方便地进行牦牛养殖,平台在实际应用中取得了良好效果。

图9 阿坝州智慧牧场牦牛管理平台

3 结束语

本文基于WebGIS设计实现了二维地理信息服务子系统,子系统提供了空间计算、地理数据展示、图形绘制、坐标定位和轨迹漫游等基础功能模块为快速搭建地理信息平台提供了技术支持。系统在应用中表现如下优势。

(1)为开发人员提供通用WebGIS服务。二维地理信息服务子系统提供了地图基本操作、空间信息展示、地图标绘和空间计算等GIS功能。

(2)缩短平台建设周期,降低开发成本。WebGIS二维地理信息服务子系统集成了地理信息平台的通用功能,开发人员进行地理信息平台建设时无需从头建设,可根据自身项目需求引入相关功能模块避免了代码重复建设的问题,提高了开发人员的工作效率。

(3)提升了代码复用率。系统实现了可供开发者拓展的接口,同时提供了封装好的可直接调用的功能模块接口,开发人员可自定义引入功能模块,且子系统连接的GIS服务器地址可通过外部配置文件进行修改,保证了系统的灵活性、适配性。综上所述,二维地理信息服务子系统有助于快速搭建地理信息平台在GIS建设中有一定的推广价值。

猜你喜欢

开发人员漫游子系统
不对中转子系统耦合动力学特性研究
GSM-R基站子系统同步方案研究
Semtech发布LoRa Basics 以加速物联网应用
驼峰测长设备在线监测子系统的设计与应用
霹雳漫游堂
NASA漫游记
后悔了?教你隐藏开发人员选项
车载ATP子系统紧急制动限制速度计算
边走边看:漫游海底 梦想成真
三星SMI扩展Java论坛 开发人员可用母语