第一作者:殷建鹏(1994-),男,甘肃张掖人,在读硕士生,研究方向为草地遥感与地理信息系统。E-mail:[email protected]
北方草地不仅是我国重要的畜牧业生产基地,更是我国北方一道重要的生态屏障。为了掌握北方草地资源的整体状况、空间分布以及动态变化,本研究基于ArcGIS Server 10.0服务器、Microsoft SQL Server 2008数据库等环境,将Flex框架与WebGIS技术相结合,设计开发了中国北方草地资源管理信息系统,实现了在网页上快速浏览、查询、管理北方草地资源的功能,构建了一个全面、准确、高效的草地资源监测信息管理平台,为相关决策人员提供了科学、合理的决策依据,推动了我国数字草业的发展进程。
Northern grassland is an important livestock production base in China, as well as being an important ecological barrier in northern China. To determine the overall situation, spatial distribution, and dynamic change of northern grassland resources, we designed and developed the Northern Grassland Resource Management Information System based on ArcGIS Server 10.0 and Microsoft SQL Server 2008, which combined the Flex framework and WebGIS technology. A comprehensive, accurate, and efficient monitoring information management platform for grassland resources can quickly browse, query, and manage the northern grassland resources. Such a system provides scientific and rational data to relevant decision makers and promotes the development of the digital grass industry in China.
我国是草地资源大国, 各类天然草地面积约为4亿hm2, 占国土面积的三分之一[1], 而全国近80%的天然草地资源分布在新疆、内蒙、甘肃、宁夏、山西、陕西、河北、吉林、黑龙江9个北方省(市)的部分地区[2], 总面积近300万km2。中国北方草地生态系统具有极其重要的作用[3, 4, 5], 不仅是全国重要的畜牧业生产基地, 推动了社会经济的发展, 而且具有涵养水源、调节气候、防风固沙、水土保持等重要的生态意义, 是北方生态安全的一道重要屏障[6]。由于多方面因素的影响, 北方草地资源一直面临着沙化、荒漠化、盐碱化的“ 生态危机” [7, 8], 随着人们生态安全意识的提高, 北方草地资源的合理利用与管理得到了更多的重视[9], 管理部门的决策人员更需要一个全面、准确、动态的草地资源监测信息管理平台来为其提供决策依据[10]。
草地资源调查数据的信息量一般比较庞大, 而传统的存储方法无法满足人们了解草地资源的整体状况、空间分布以及动态变化的需求。随着地理信息系统(geographic information system, GIS)技术在草地资源管理中的应用, 草地资源的空间数据和属性数据在计算机中被大容量存储, 管理人员可以对这些数据进行查询、检索、输出、分析等操作, 将草地资源的特征在GIS软件中直观、便捷地展现, 这在提高管理效率、指导人们合理利用草地资源方面发挥着巨大的作用。目前, 我国众多学者针对不同区域的天然草地资源设计了相应的管理系统。朱进忠等[11]设计了新疆草地资源管理信息系统框架, 实现了新疆地区草地植物资源、草地旅游资源、草地野生动物资源等方面的评价、预测等功能。赵博[12]构建了松嫩平原草地资源的Geodatabase数据模型, 实现了松嫩草地空间数据和属性数据的一体化储存, 并基于Visual Basic和ArcObjects开发方法设计了松嫩草地资源管理系统, 对松嫩草地形成了有效的管理。而WebGIS技术的出现将GIS软件和Web技术结合, 把单机管理的草地资源系统进化为互联网共享的管理方式, 成为了一个交互式、分布式、动态的系统[13]。王加亭[14]以锡林郭勒草原为研究对象, 设计开发了WebGIS草地资源信息共享系统, 以草地类型、土壤类型等11个属性展现了草地资源的状况。杨永顺[15]基于WebGIS设计了草原监测系统, 用户可通过浏览器直观方便地获取产草量、载畜量等信息。宋春桥等[16]利用ArcGIS Server构建了藏北草地信息共享平台, 为公众、科研人员以及管理部门提供信息共享。李琦等[17]基于WebGIS技术, 利用JAVA语言设计了东北草地植物信息系统, 实现了草地植物资源的时空统计分析等功能, 其平台的开放性和通用性满足了不同用户的需求。虽然传统的WebGIS技术将GIS功能嵌入了Internet体系中, 使得GIS的数据查询、地图可视化等功能在万维网上进行, 具有一定的优势, 但基于HTML页面模型开发的WebGIS应用程序与用户交互能力较差, 重用性和与扩展性不强, 空间分析功能较弱, 系统的使用效率大大降低。
针对以前研究中存在的问题, 设计中国北方草地资源管理信息系统基于ArcGIS Server 10.0的服务器、Microsoft SQL Server 2008数据库等环境, 将富互联网应用程序(rich internet application, RIA)技术中的Flex框架与WebGIS中的相关技术结合, 以期为管理者提供了一个全面的信息共享、信息处理、信息分析平台, 为相关人员了解北方草地资源的利用现况提供帮助, 为决策人员提供科学的决策依据, 以便制定合理的北方草地发展战略, 促进我国北方牧区畜牧业的可持续发展。
系统开发基于ESRI公司出台的ArcGIS Server 10.0服务器平台, 包括GIS服务器与Web服务器, 允许多种形式、高效共享GIS资源, 是当前最主流的GIS平台。ArcGIS Server 10.0支持Java和.NET平台, 而且能与多种网络接口结合, 简化和推进了WebGIS的应用[18], 为GIS服务的发布提供一个快捷、高效的技术支持。ArcGIS Server 10.0性能强大, 不仅支持在分布式环境下数据采集、管理地理数据、制图、地理空间分析、地图可视化等基础GIS功能[19], 而且能通过易操作的Web应用, 构建基于网络和移动端的GIS资源共享体系, 实现跨浏览器与客户端的GIS资源访问功能, 与全球互联。
Flex Viewer是对ArcGIS Viewer for Flex的简称, 是ESRI公司基于ArcGIS API for Flex设计的WebGIS开发框架。Flex Viewer采用了控制反转(Inversion of Control, IoC)、消息总线(Viewer Container)以及面向接口编程(Interface-Oriented Programming)的思想[20], 将事件作为各功能模块之间交流的渠道, 较大的减少了模块间的耦合度, 有助于开发人员删减繁琐的底层操作, 将精力主要放在功能模块设计上, 极大地提高了系统的开发效率和灵活性, 降低了后期维护难度。Flex Viewer框架与服务器端的通信基于Web服务器, 客户端可通过简单的调用操作就能实现; 同时该框架是典型的Flex应用, 可通过浏览器中的Flash Player进行加载和管理, 不仅消除了浏览器和平台的限制, 而且用户可以感受到较好的视觉体验。
SQL Server 2008是基于Microsoft平台的关系型数据库, 功能强大, 不仅可以存储各种类型的数据, 按照用户需求对各类信息分类汇总、归纳统计, 极大提高了数据库的工作效率, 而且可以对数据进行修改、添加和删除, 实现了信息的实时控制与监测, 数据的安全性得到保障。SQL Server 2008数据库中数据的浏览和检索则是通过结构化查询语言(structured query language, SQL)实现, 该语言是非过程化编程语言, 拥有极强的灵活性和功能性, 用户可便捷地对数据进行更新、查询等操作。由于使用方便、可伸缩性好、与相关软件集成度高的优点大大降低了系统负担[21], 提高了系统稳定性, SQL Server 2008数据库被广泛应用于管理系统的开发。
该系统基于RIA的B/S体系架构, 在设计上采用面向对象服务的方式[22], 将系统总体架构设计成4层:数据层、服务层、表示层以及客户层(图1)。
2.1.1 数据层 数据层指应用数据的存储层, 是系统应用的基础, 具有一定的可移植性。数据层不仅负责北方草地监测数据和地理空间数据的存取、管理和维护, 而且给用户提供了数据访问的接口[23]。该系统通过ArcGIS Server10.0中的ArcSDE空间数据引擎访问SQL Server 2008关系型数据库, 提供了空间数据和属性数据进行高效率操作的数据库服务。
2.1.2 服务层 服务层也叫业务逻辑层、连接数据层和表示层, 由各种服务器端构成, 是服务器响应Flex应用客户端数据请求的关键, 也是系统架构中最具核心价值的部分。该系统服务层主要为ArcGIS Server服务器, 其包括GIS服务器和Web服务器。GIS服务 器主要用于对外发布各种空间服务并处理Web服务器发来的空间请求[24]; Web服务器提供浏览器的网络浏览服务, 会首先接收Flex客户端的请求, 再将请求传达给ArcGIS Server服务器, 通过ArcSDE实现对底层数据层的数据库查询操作, 最后将服务层的响应结果回馈给Flex客户端。
2.1.3 表示层 表示层是Flex应用程序和系统用户之间进行交互的接口, Flex应用程序可通过Flex类库中的各种组件向数据服务层请求不同的数据服务。WebGIS技术与Flex框架结合后将数据通讯分解成了既能与用户直接交互, 又能与服务器进行通信的小模块[25], 并为外部留有GIS服务接口, 提供地图服务(包括地图显示、图例、图层目录组件等)、几何计算服务、图例编辑等。
2.1.4 客户层 客户层是指应用程序的客户端。此处指安装Flash播放器的浏览器, 如IE浏览器或者火狐浏览器(FireFox, FF)等。Flash播放器可用来执行编译后的SWF文件(已编译的Flex应用程序), 并通过Web服务器连接ArcGIS Server应用服务器, 此运行方式具有安全性、可升级、高适应性等特点。因为Flash插件在浏览器的普遍应用, 客户端无需再安装额外的插件。用户利用Flash播放器中的应用程序进行交互操作与体验, 最终实现对北方草地资源信息的访问。
根据系统的设计目的和使用人员的一般需求, 北方草地资源管理信息系统功能的设计包括了基础功能、查询功能以及数据管理功能(图2)。
2.2.1 基础功能 基础功能主要包括地图服务功能。Flex Viewer开源框架本身自带地图显示与浏览功能, 用户可以对地图进行放大、缩小、平移、鹰眼、图层控制以及图例的显示等操作, 方便对目标地点的快速定位、地图信息的解读、识别地物特征。
2.2.2 查询功能 空间查询分为点查询和面查询, 该系统为用户提供点查询或者面查询工具, 用户可以根据自己的需求在地图上勾选点要素或者手动绘制面要素, 查询该点或该区域相应的属性信息, 属性信息可根据用户需要以窗口列表的方式呈现。
2.2.3 数据管理功能 系统对北方草地资源调查数据的管理涉及数据权限管理、数据检索查询和数据下载。
1)数据权限管理。系统数据库所涉及的野外实测数据需要花费大量人力、物力和时间才能获得, 数据类型复杂, 覆盖区域较广, 所以这些数据来之不易。功能设计中考虑到权限管理, 因此只有通过一定方式的验证后, 用户才能获得访问数据服务的权限, 并且对数据进行检索和下载。
2)数据检索。由于数据量较大, 设计此功能时参考图书馆图书信息的查询模式, 对数据库中的数据进行多条件关键字检索查询, 用户就可以根据自己的实际需要准确检索到自己期望的数据。
3)数据下载。在Flex界面中是很难实现对查询到的数据进行其他的操作处理(如生成图表、统计分析等), 用户可以使用数据下载功能将检索到的数据以Excel表格的形式另存到本地计算机, 实现对数据的后续处理、分析。
系统数据库由空间数据库和属性数据库构成。空间数据库基于ArcGIS Server 10.0构建, 空间数据包括基础地理数据、草地类型数据、CSCS草地综合顺序分类数据、植被指数、土地利用数据及草地退化数据等。其中基础地理数据包括区域边界图、县级行政区划图、道路分布图、湖泊与水系图。在发布地图服务之前, 需要在ArcMap中制作地图文档, 由于msd文档相比于mxd文档提供了更高的地图渲染效率, 所以将空间数据全部储存在msd文档中再发布地图服务。属性数据库基于Microsoft SQL Server 2008关系型数据库构建, 是系统数据库中的重要部分, 主要涉及北方草地的野外样方监测数据, 包括土壤监测数据、草食动物监测数据以及植被监测数据等。
Flex Viewer开源框架本身自带的基本功能模块包括地图管理(Map Manager)、界面UI管理(UI Manager)。其中, 界面管理组件包括导航工具(Navigation Widget)、地图浏览工具(Overview Map Widget)、地图转换工具(Map Switcher Widget)和图例控制工具(Header Controller Widget)。4个工具组件在程序初始化时全部加载。
Flex Viewer支持对空间数据的查询, 被查询的空间数据必须为矢量数据, 因此首先需要创建系统所要展示图层的矢量文件, 并将其在ArcGIS软件的GIS Server发布为地图服务, 然后在Flex Viewer的地图及图层配置信息中进行调用。系统中地图图层主要分为两类:基础背景地图和业务操作图层。
查询是该系统中最重要也最基础的服务, 可以实现地图中要素(点、线、面)属性的多方式查询(点击查询、拉框查询及多边形查询等), 系统根据用户请求去执行特定的查询任务, 并将查询结果以弹出窗口的形式返回给用户。在进行空间数据的查询操作时, 需要在Flex Viewer使用< esri:QueryTask> 标签定义一个查询任务面板[26]。
数据管理模块主要针对北方草地资源的土壤、群落等属性数据的检索、下载和共享。该系统主要通过WebService组件, 基于ASP.NET发布的Web服务来调取存储在SQL数据库中的数据。
考虑到野外实测数据的珍贵性, 该系统通过设置数据访问权限而限制用户对数据的浏览。用户只有通过申请获得特定的许可之后, 方可进入数据库, 检索以及下载所需要的数据。
图3所示为系统在用户浏览器中显示的主界面, 分为标题区、功能区和展示区三部分, 标题区显示系统的名字及logo; 功能区为用户提供了权限登录、查询图层勾选、查询工具选择等服务; 展示区用来显示地图, 并进行放大缩小、鹰眼图、漫游等服务。
图4所示为系统的空间查询功能展示, 用户可查询任意图层中某一点或某一区域的属性, 例如勾选草地综合顺序分类图后在任意位置运用点查询, 就可以得到该点所对应的潜在草地植被类型名称。
图5所示为数据管理功能的展示, 用户可在系统数据库进行多条件的检索, 准确获取自己需要的数据, 并通过“ 导出数据” 按钮将数据导出为Excel表格的形式, 方便进行后续的数据处理与分析。
本文介绍了北方草地资源信息管理系统的架构与功能设计理念, 以及基于Flex框架、ArcGIS Server等技术设计开发的方法。该系统实现了北方草地资源多层数据在互联网上的浏览、查询、管理等功能, 为相关人员提供了一个准确、灵活、高效的信息共享平台, 推动了我国草地资源的数字化建设。与国内同类系统相比, 不仅研发技术上有革新, 通过Flex技术与WebGIS技术的结合, 降低了系统开发的困难程度, 开发的系统用户界面更为友好, 交互性增强, 运行速度更高。此外, 该系统收集了数据量庞大、数据类型丰富的北方草地资源信息, 在大尺度范围内描述了北方草地资源的状况。
但该系统正处于试用起步阶段, 系统功能还不够完善, 如描述草地资源状况的属性数据较少, 要全面描述北方草地资源的状况, 补充和完善属性数据库应是后续开发中的重点; 此外, 为提高该系统的实用性, 在后续开发中将对系统中的图层进行专题展示, 如基于CVOR算法制作的北方草地退化分布图、基于机器学习方法制作的北方草地生物量空间分布图、北方牧区土地覆盖类型图等, 以便让决策人员更加直观感受到北方草地资源的动态变化。随着网络技术、数据库技术以及GIS技术的不断革新, 3D技术也将逐渐被应用到网页和客户端中, 用户可在系统中浏览草原景观的立体影像。
The authors have declared that no competing interests exist.