一种通用地理信息采集平台的设计与实现

2017-09-22 05:41
地理空间信息 2017年9期
关键词:数据格式空间数据图层

徐 亮

(1.福建省基础地理信息中心,福建 福州 350001)

一种通用地理信息采集平台的设计与实现

徐 亮1

(1.福建省基础地理信息中心,福建 福州 350001)

基于MongoDB数据库,设计并实现了一种以元数据为界面驱动的,能快速构建各种业务数据结构的,能满足空间数据管理﹑共享和发布的通用地理信息采集平台。应用结果表明,该系统框架具有高效﹑通用﹑灵活可扩展等特点,能够实现从数据采集到应用的一体化功能。

地理信息采集;通用;WebGIS;MongoDB

随着我国经济的高速增长,城市和基础设施发生着日新月异的变化,据2006年一篇文献中的估计,北京﹑上海这样的大城市,每年有40%以上的地图内容应得到更新,而传统落后的测绘方式需0.5 a或1 a以上的时间[1],根本无法适应这种快速更新的现实需要。作为地理信息消费的主体,政府部门和企事业单位对地理信息的需求巨大,近年来我国政府也提出实现国家和国民经济信息化的战略目标,因此,对地理信息现势性和准确性的要求将越来越高。

目前,我国政府部门专题地理数据更新由国土资源局负责﹑各委办局自行采集[2],主要使用针对特定业务的采集系统,有些甚至仍以文本表格等方式记录空间位置以及关联的属性信息,随着业务扩展,原采集系统早已无法使用。因此,本文研究了一种能满足跨行业需求和高效并发访问的通用地理信息采集平台,并通过与数字城市公共地理空间框架接口对接,实现了从地理信息快速采集﹑管理﹑分发到共享的一体化平台,以解决现有地理信息采集系统的短板和通用性问题。

1 关键技术

1.1 MongoDB数据库

在Web端应用中,空间数据的传输和表达主要以非结构化和半结构化数据格式进行交换,传统的关系型数据库解决了数据管理中数据高度一致性﹑可靠性和完整性的问题,但在海量数据存储和访问﹑非结构化和半结构化数据存储以及易用性和扩展性等方面还存在难以克服的问题[3]。MongoDB是一个基于分布式文件存储的开源数据库系统,提供了面向文档形式的数据存储,数据结构由键值对组成,支持空间数据存储和查询。作为一种NoSQL数据库系统,相对于关系型数据库而言,其数据模型更加灵活,支持的数据类型更加多样,特别是在数据建模﹑存储和分析方面,其性能和扩展性远胜于关系型数据库,在大规模集群部署方面具备高度可扩展性和极佳的性能,且随着数据量递增,其性能较关系型数据库优势明显[4]。同时针对海量数据快速处理能力,MongoDB内置了MapReduce模型,利用Mongo-Hadoop适配器连接的方式,可同时发挥分布式系统基础架构Hadoop的计算能力和MongoDB的数据管理能力[5],在大规模并行计算方面具有较高的执行效率。MongoDB非常适合存储大规模的非结构化空间数据,且能为并发访问通用地理信息采集平台提供较高的性能支持,为后续需求变化﹑各种数据模型的构建提供高度可扩展性。

1.2 空间地理信息虚拟库(GDAL)

因为平台未来需支持不同的矢量数据,所以需要解决通用矢量数据访问接口的问题,还要支持接口的可扩展性能力。

GDAL是一个在X/MIT许可协议下针对通用空间数据访问的独立﹑专业开源库,最早由Frank W开发,后得到许多团体的赞助,支持对栅格影像数据的读写和高效处理[6],如影像接边检查﹑范围提取等。它所支持的各种栅格文件格式都建立在一种抽象数据模型的基础上,每一种文件格式对应一种文件格式驱动类,并采用文件驱动管理类来统一管理所支持的文件格式,具备很好的可扩展性。

OGR是GDAL的一个分支项目,提供对矢量数据的访问接口,几乎囊括对所有矢量数据格式的支持,以及空间数据格式转换和坐标系统转换[7]。OGR体系包含几何对象﹑空间参考系统﹑要素﹑要素定义﹑图层﹑数据源和驱动等7个部分,并基于OpenGIS中的简单要素数据模型进行建模,其数据类型和方法命名均符合OpenGIS接口规范,为后续通用系统的扩展和体系结构设计奠定了很好的基础。

本文采用GDAL/OGR库来支持矢量数据格式,并将不同格式的要素对象数据结构模型转换为MongoDB数据库可读写的文档对象[5],同时根据实际需要,支持在OpenGIS接口规范下对空间数据驱动接口进行扩展,以保证通用地理信息采集平台对可能使用的不同矢量数据格式的支持,满足平台通用性要求。

2 通用架构设计

通用架构设计有多种思路,必须根据具体的需要而定。GIS应用互操作通用架构适合从体系结构层面进行考虑,OGC和ISO两大组织提出了一个通用的GIS应用互操作体系架构[8],即分为交互层﹑处理层和信息管理层,各模块间通过标准接口进行交互,并对服务﹑功能和模型制定了标准和规范,这些规范可作为GIS互操作的原则和体系架构的基础。通用GIS应用系统集成采用元数据进行驱动是一个比较有效的解决思路[9]。它将最小功能拆分成原子功能,对各原子功能所面对的业务领域﹑用户及其相关联的空间对象进行梳理,并将每一类空间实体对象绑定相关的原子功能,最终实现GIS应用的松散耦合。另外,还可通过建立数据模板和功能模块的方式来保证系统的通用性[10]。

本文根据地理信息采集的业务逻辑,综合考虑体系结构和元数据两个方面,从体系结构层面设计对各种异构空间数据格式的支持和在各平台实现数据共享发布;从元数据层面设计驱动表现层界面,包括数据关联逻辑和灵活可定制的数据结构。

2.1 元数据设计

元数据设计主要以图层为基础单元,以图层属性字段和约束等为原子功能来驱动表现层界面的渲染,包括构建图层数据的访问权限﹑图层数据结构﹑约束性条件﹑元数据之间的一对一﹑一对多﹑多对多以及包含从属的逻辑关联关系,通过建立严谨的内在逻辑结构驱动通用地理信息采集平台界面的动态渲染,元数据逻辑结构如图1所示。

元数据建立在用户权限的基础上,图层表结构的动态创建与修改﹑专题类型与图层的从属关系以及图层的访问权限信息等都通过元数据表来管理和维护。用户通过建立专题类型﹑图层结构属性等原子功能以及描述完整的内在依赖逻辑和完整性约束,动态地驱动表现层界面展示﹑数据输入输出和图层数据结构,最终根据不同业务需要,实现快速定制图层数据结构﹑图层属性和类型的输入约束逻辑,以满足不同业务地理信息采集的通用性﹑可靠性和完整性要求。

图1 元数据文档逻辑结构图

2.2 系统架构设计

GIS应用在逻辑模型﹑数据结构﹑数据量和功能应用等方面具有一定特殊性,为保证平台具备灵活性﹑可维护性和可伸缩性,本文采用成熟的3层结构模型,即表现层﹑逻辑层和数据层,同时在架构中引入ISO/TC 211和OGC相关规范设计思想[8],尽可能地将空间数据服务划分为不同的功能模块,并通过规范的接口进行交互,以便能够建立灵活的体系结构,适应不同的业务和应用需求变化。通用地理信息采集平台系统架构如图2所示。

图2 通用地理信息采集平台系统架构

数据层负责数据存储﹑格式转换﹑数据访问和数据服务等数据管理功能;逻辑层提供各种地理信息功能服务﹑空间数据分析以及元数据服务的数据服务接口和功能接口;表现层负责数据展示﹑查询﹑采集和编辑等数据采集业务流程﹑元数据定义,以及根据元数据定义进行界面渲染。

各层服务和功能模型均通过OGC标准接口或本文定制的标准化接口进行交互,并可与数字城市公共地理空间框架等平台进行对接,实现数据共享和发布的一键式服务。利用GDAL空间信息访问虚拟库实现对矢量数据格式的支持,并通过对数据访问驱动接口的扩展,实现对txt和Excel等文本形式的空间数据访问和格式转换功能的支持。基于MongoDB数据库的地理信息管理模块,实现了空间数据索引﹑查询和分析等功能;同时可根据用户并发访问实际需求,进行动态弹性的分布式部署和对MongoDB数据库的处理能力进行伸缩,改善因平台通用性而大量并发访问可能导致的性能瓶颈问题。

3 应用实例

基于以上关键技术和设计思路,通过充分的需求调研,梳理了各需求方对地理信息采集平台的共性需求,基于ArcGIS API for Javascript开发框架,采用GDAL和MongoDB数据库设计并开发了一套通用地理信息采集平台,其功能结构如图3所示。

图3 通用地理信息采集平台功能结构图

该平台实现了用户登录﹑用户管理﹑快速定位﹑图层管理和要素管理等5个功能模块。图层管理模块实现了图层数据结构的自定义﹑属性字段数据输入输出的约束检验﹑根据用户图层定义而生成的图层元数据动态渲染图层列表﹑字段查询和编辑﹑图层样式及要素查询﹑要素信息显示等界面,实现了对txt﹑Excel﹑shp等空间信息数据格式的导入导出,还可根据实际需求快速扩展和定制其他需要支持的导入导出矢量数据格式。平台提供了规范的图层发布接口,实现了将图层发布到“天地图·南平”的一键式发布功能。要素管理模块实现了强大的地理数据采集功能,包括创建﹑查询和删除要素,并提供了多种可选图形绘制工具和操作回退功能,实现了强大的图形和属性信息在线采集﹑编辑和更新功能,如图4﹑5所示。图4为通过元数据驱动生成的要素编辑界面,根据元数据定义字段自动完成输入数据的约束性检查。

图4 要素编辑界面

图5 图层管理界面

4 结 语

本文基于OGC和ISO等标准组织提出的GIS互操作体系架构思想,采用了一种以元数据为界面驱动来构建Web端通用GIS的技术路线,并实现了通用地理信息采集平台。经过试运行,该平台具备较好的灵活性﹑可维护性和可伸缩性,满足了各委办局对地理信息数据采集的业务需求,避免了各部门对特定专题数据采集的重复建设,同时也保证了采集的专题数据的快速发布共享,为保障专题信息采集﹑管理和共享等全流转过程提供了平台支撑。

[1] 李德仁.移动测量技术及其应用[J].地理空间信息,2006, 4(4):1-5

[2] 黄素丽.数字城市地理空间框架数据更新机制探讨[J].测绘与空间地理信息,2015(1):172-174

[3] 覃雄派,王会举,李芙蓉,等.数据管理技术的新格局[J].软件学报,2013,24(2):175-197

[4] 李朝奎,杨武,殷智慧,等.MongoDB的遥感影像分布式存储策略研究[J].测绘通报,2014(5):16-19

[5] 雷德龙,郭殿升,陈崇成,等.基于MongoDB的矢量空间数据云存储与处理系统[J].地球信息科学学报,2014(4):507-516

[6] 苏光日,范义鹏,张学之,等.GDAL在地理国情监测项目中的应用[J].测绘与空间地理信息,2014(1):86-88

[7] 孔帅可,乔保军,付征叶.基于GDAL的ESRI Shapefile格式文件处理[J].计算机时代,2014(8):43-45

[8] 黄海峰,夏斌,赵宝林,等.一种通用GIS应用体系结构的分析与应用[J].地球信息科学,2006(4):31-34

[9] 袁满,李金荣,高俊涛,等.一种元数据驱动的通用GIS应用集成模型[J].计算机工程,2012(6):282-284

[10] 解智强,杜清运,高忠,等.地下管线通用GIS平台建设及其在城市排水管理中的应用研究[J].测绘通报,2012(8):72-75

P208

B

1672-4623(2017)09-0066-03

10.3969/j.issn.1672-4623.2017.09.021

2017-03-14。

项目来源:专题地图展示系统可视化搭建关键技术研究(2015J09)。

徐亮,硕士,工程师,研究方向为数据库技术和GIS应用等。

猜你喜欢
数据格式空间数据图层
基于水利标准数据格式的BIM数据管理和水利BIM生态探索
巧用混合图层 制作抽象动感森林
元数据驱动的多中心空间数据同步方法研究
图层法在地理区域图读图中的应用
跟我学添加真实的光照效果
论子函数在C语言数据格式输出中的应用
DWG与SHP数据格式互转换方法研究——以龙岩规划测绘数据为例
浅析“递层优化法”在矿井制图中的应用
基于文件系统的分布式海量空间数据高效存储与组织研究
基于ArcGIS的规划数据格式转换研究