基于OpenLayers的流域基础信息数据库
2018-06-20林思成
叶 凯,蒲 智,林思成
(新疆农业大学 计算机与信息工程学院,新疆 乌鲁木齐 830052)
0 引 言
流域信息是流域研究及流域管理的关键信息,主要包括流域的自然信息和人文信息。自然信息通常指水资源信息、地形地貌等空间信息、生态环境信息等。人文信息通常指流域内的社会经济、河流湖泊的演变历史等信息[1]。传统的流域信息源主要以书籍、期刊以及互联网作为载体。书籍等纸质信息源虽然信息详尽,但是查询效率极低。互联网虽然能快速获取信息,但是获取到的信息多而杂,需要进行信息的过滤,影响了流域研究进度[2-4]。
随着计算机技术、网络技术、数据库技术的发展以及应用的不断深化,WebGIS技术不断成熟[5-6]。通过WebGIS技术实现流域信息的查询,不但解决了书籍中信息查询的烦琐,而且通过建立流域信息专题数据库也解决了互联网搜索信息筛选过程。通过Web浏览器在地图中进行流域信息查询是一种快捷高效的地理信息获取方式,不但能直观地展现信息,而且不受平台限制,相比传统的信息获取方式优势明显。
1 OpenLayers简介
OpenLayers是由MetaCarta公司开发的,用于作为WebGIS客户端的JS库。它可以很容易地在Web页面中嵌入多种地图源,包括GoogleMaps、Yahoo、Bing、天地图等,用户还可以用简单的图片地图作为背景,在OpenLayers客户端进行图层叠加。OpenLayers除了可以在浏览器中帮助开发者实现地图浏览的基本效果,比如地图比例尺、鹰眼等常用功能外,还可以进行选取面、选取线、要素选择等不同的操作,甚至可以对已有的OpenLayers操作和数据支持类型进行扩充,为其添加更多功能[7]。其主要优点如下:
(1)完全采用JavaScript开发,二次开发难度低;
(2)支持标准化和定制的同服务器进行交互的协议;
(3)可定制用户界面和功能;
(4)支持浏览器内置数据渲染(采用SVG、VML、Canvas技术),支持开发高级浏览器内置地图;
(5)支持多种数据源地图:
①商业地图:Google,Bing,Yahoo。
②OGC标准规范:WMS,WMTS,WFS,WFS-T,GeoRS,GML。
③解析多种数据格式的矢量数据和元数据能力:Atom,ArcXML,GeoJSON,GeoRSS,KML,OSM,SLD,WMTS[8-9]。
1.1 OpenLayers框架结构
OpenLayers为能更好地对地图进行操作和显示,将抽象事物具体化为类,OpenLayers的核心类为Map(地图容器类)、Layer(图层类)、Source(图层的数据源类)、View(地图表现相关的地图视图类)。围绕以上核心类来实现地图操作和地图加载[10]。OpenLayers体系架构如图1所示。
图1 OpenLayers体系框架
1.2 数据渲染
OpenLayers中的渲染功能由渲染器(即renderer相关类)实现,通过Map类的renderer属性设置渲染类型,即分别通过Canvas、DOM、WebGL三大渲染类别下的相关子类实现。文本中涉及的地理信息的矢量数据渲染,在VectorLayer渲染器中则是通过ol.renderer.Vector和ol.renderer.VectorContext的相关子类具体实现各类矢量要素的渲染,即点、线、区等几何图形的渲染[11]。
该项目中需要对流域内的水系进行矢量要素的渲染,通过矢量数据的在线编辑保存为渲染器类可解析的GeoJSON格式数据,数据源Source使用url+format方式加载矢量数据,再设置矢量要素的样式加载到地图层上。通过测试,此方法运行效果完全满足该项目需求[12]。
1.3 Overlay叠加层
叠加层,即叠加到地图上显示的要素,通过关联自定义的HTML元素,由一个单一的地图坐标点确定叠加的位置。与控件(Control)类似,但不同的是叠加元素不是固定在屏幕某个位置的元素,而是通过关联一个地图逻辑坐标或者通过地图事件来跟随地图的移动,形成地图上再浮动一层的效果。如该系统中的地图标注、坐标查询、信息的浮动显示等功能都是通过叠加层来实现。
2 流域基础信息数据库实现过程
2.1 信息来源与处理
数据是所有系统开发的基础,是影响系统成功与否的关键因素。通过多种途径,该系统搜集整理的资料如下:①王世江主编的《中国新疆河湖全书》[13]中塔里木河流域数据,2010年中国水利水电出版社出版。②《中国河湖大典》编纂委员会编著的《中国河湖大典·西北诸河卷》[14]中塔里木内流区数据,2014年中国水利水电出版社出版。③长期以来的野外考察的图像、文本记录和实验所得数据。④空间数据主要加载在线Google地形图、Google矢量图、Google遥感图、Google交通图、流域行政区划图、流域区域矢量图、流域水系矢量图。
以上属性数据通过对书中文本信息的扫描、识别、校正,录入SQL Server数据库中。图片数据以文件的形式存储,通过访问数据库中的图片地址来调用数据。空间地理数据是使用Google公共地图作为底图,流域区域矢量数据、水系矢量数据通过网络在线工具手工绘制图形,并生成WebGIS可解析的GeoJSON数据格式。
2.2 流域基础信息数据库设计
流域的基础信息和空间要素是密不可分的,流域信息包含了流域的自然信息与人文信息,这些信息都是在以空间要素为载体的。文中以流域基础信息为主线,设计了流域基础信息数据库的组织模式。数据库包括基础地理要素集、流域属性数据集,数据库下相关要素与属性表见表1。
表1 数据库组织结构
2.2.1 基础地理要素集
基础地理要素是流域基础信息空间化和地图表达的基础[15],如行政区划、流域区划可抽象为Polygon(区)要素,河网、路线可以抽象为LineString(线)要素,湖泊、乡镇、山峰等可抽象为Point(点)要素。首先确定不同空间地物的要素形态划分河流、湖泊等空间单元,在相同的坐标系下用不同的要素表示,OpenLayers解析不同矢量要素通过地图客户端渲染表达,要素集在地图上的空间表达是获取流域基础信息的关键一步。
2.2.2 流域属性数据集
流域属性数据是地图空间要素承载的核心信息,将流域基础信息从三个视角进行提供,包括简介、概述、纪实。其一,简介所提供的信息包括河湖名称、别名、少数民族语言称谓、古名,河湖类型,河湖发源地,河口,流域所处经纬度,干流所经行政区。其二,概述所提供的信息包括天然河湖所在水系,自然环境,河湖的历史变迁过程,河流长度,湖泊面积,河流流域面积,多年平均径流量、输沙量等。其三,纪实所描述的信息包括河流自源头到河口所流经地段、自然状况、水利工程、自然资源与社会经济概况、与河湖行管的自然景观与人文景观。流域的基础信息通过数据库存储,以图文结合的方式通过客户端的查询获取。
2.3 属性数据与空间数据关联
系统通过WebGIS技术实现空间数据的发布功能,通过集合流域属性数据与地理数据系统实现图文一体化操作[16],从地图上可以查询地理位置和相关属性信息。由于系统数据库采用属性数据库和空间数据文件结合的形式运行,因此实现系统的图文一体化操作关键在于属性数据和空间数据间的关联设计[17-19]。
属性数据库和空间数据各实体表的主键(河流ID或湖泊ID)是各矢量图形的唯一序号,属性数据的每一条记录都关联着河流或湖泊的矢量数据。属性数据和空间数据同一的静态ID是属性数据和空间数据关联操作的基础,是客户端对空间数据操作匹配属性数据的唯一依据,系统根据空间数据访问属性数据流程见图2。
图2 访问属性数据流程
3 系统功能实现
3.1 系统架构
系统总体架构采用B/S模式,包括数据库、Web服务器、浏览器。数据库软件采用MS SQL Server、IIS作为Web服务器,地图服务来源于Google在线地图服务。系统开发遵循MVC设计模式,逻辑上系统可分为数据层、业务逻辑层和表现层,如图3所示。
3.2 系统功能
目前,系统已经实现了对流域信息的多方式查询,可以查询流域内河流信息、湖泊信息、坐标、图片等。同时系统也具备多方式的查询,如点选查询、条件查询、全局查询等。点击菜单栏的“查询”图标后,可进行湖泊查询、河流查询、坐标查询、图片查询。除查询功能外,系统可对Google底图进行随时切换,并可进行地图的基本操作,比如放大、缩小、复位、比例尺、鹰眼等。同时不同的水系专题图可以进行随时切换并叠加各种图层显示。在菜单栏还设计有图形编辑功能,能对点、线、区等要素进行编辑并保存。测量功能可以在地图上进行长度和面积的测量,打印功能可以打印任意地图区域,系统右键功能可以在地图中添加兴趣点。系统查询信息效果见图4。
图3 系统架构
图4 查询信息效果
3.2.1 点选查询
在地图中加载河流或湖泊的矢量图层后可以通过对矢量要素的点选,然后矢量要素高亮显示并显示图片信息,点击链接即可查看相关河流或者湖泊的水文信息、人文信息等。
3.2.2 条件查询
通过条件查询可以定制条件,如河流的所属地市、所属水系、河流长度,以查询满足条件的河流,选择满足条件的河流后可以在地图中标注河流的源头。
3.2.3 坐标查询
通过选择“坐标查询”选框来进行坐标的查询,只需用鼠标在地图中点击即可以OpenLayers的Popup标注的形式显示当前查询的坐标。
3.2.4 图片查询
图片点击“图片查询”选框启动查询图片功能,地图上浮动查询框,通过坐标的搜索框对流域内的河流或湖泊的图片进行搜索,并以不同的颜色提示显示在列表最前,点击即可获取图片信息。
3.2.5 全局搜索
全局搜索功能是通过主页中的搜索框来实现,此功能适合各种用户,不管对流域内的水系是否了解都可以通过输入关键字,点击搜索按钮,即可在相应的地点以Popup标注的形式在搜索地点显示地点名称,随即可进行相关要素的详细信息查询。
4 结束语
文中研究并利用OpenLayers开源JS库实现了流域信息库系统,利用Visual Studio作为开发平台,结合HTML、JavaScript、Ajax等技术实现了客户端的开发。搜集并整理了流域的相关地理信息,以MS SQL Server作为底层数据库,以Google在线地图作为系统底图,实现了对流域内不同信息的查询,并实现了地理信息系统的一些实用功能。利用OpenLayers开源JS库能满足系统所有功能,降低开发成本,但不能利用数据进行分析等,需要进一步完善。
参考文献:
[1] 苏安琪.塔里木河流域信息分类及系统设计初步[J].干旱区地理,1997,20(1):65-70.
[2] CLARKE K C.地理信息系统导论[M].北京:清华大学出版社,2013:21-28.
[3] 谢 丽.民国时期和田河流域洛浦垦区垦荒、撂荒地的空间分布格局—基于历史资料的信息可视化重建[J].地理学报,2013,68(2):232-244.
[4] 史 磊,孔云峰,焦中辉.基于GIS的历史地理数据的管理与可视化—以《中国历代户口、田地、田赋统计》一书为例[J].湘潭师范学院学报:社会科学版,2008,30(2):77-79.
[5] 曹丛华,王 宁,黄 娟,等.基于WebGIS的海洋观测网管理信息系统设计与应用[J].海洋开发与管理,2015,32(10):56-58.
[6] CARADONNA G,NOVELLI A,TARANTINO E,et al.A Webgis framework for disseminating processed remotely sensed on land cover transformations[J].Reports on Geodesy and Geoinformatics,2016,100(1):27-38.
[7] 郭明强,黄 颖,谢 忠,等.WebGIS之Openlayers全面解析[M].北京:电子工业出版社,2016.
[8] ZHANG Yuan,LIANG Hong,QIAN Ying,et al.Design and implementation of hazard waste supervision system based on open source WebGIS[J].Advanced Materials Research,2015,1092-1093:1297-1300.
[9] MARYATI S,SHIMADA H,SASAOKA T,et al.GIS database template for environmental management of mining in Indonesia[J].Journal of Geographic Information System,2012,4(1):62-70.
[10] CLOUGH P,TANG Jiayu,HALL M M,et al.Linking archival data to location:a case study at the UK National Archives[J].Aslib Proceedings,2011,63(2-3):127-147.
[11] YUSOFF N M R N,SHAFRI H,MUNIANDY R.An effective road management system using web-based GIS software[J].IOP Conference Series:Earth and Environmental Science,2014,20(1):012025.
[12] 顾振雄.基于Leaflet开源JS类库的在线图形编辑[J]. 地理空间信息,2017(3):74-76.
[13] 王世江,张曙明.中国新疆河湖全书[M].北京:中国水利水电出版社,2010.
[14] 《中国河湖大典》编纂委员会.中国河湖大典·西北诸河卷[M].北京:中国水利水电出版社,2014.
[15] 李仁杰,傅学庆,张军海.非物质文化空间数据库与地图表达方法—基于蔚县剪纸的实证研究[J].人文地理,2014,29(1):20-25.
[16] 张贵军,陈 铭.WebGIS工程项目开发实践[M].北京:清华大学出版社,2016:289-230.
[17] 刘玉栋.基于WebGIS的城市地下电力管线管理系统设计与开发[D].杭州:浙江工业大学,2014.
[18] 杜艳琴,党宏波,武泽江.基于WebGIS的城镇基准地价查询系统设计与实现[J].地理空间信息,2016,14(9):77-78.
[19] 张建立,李仁杰,傅学庆,等.古诗词文本的空间信息解析与可视化分析[J].地球信息科学学报,2014,16(6):890-897.