多源多目标空间数据库的一体化集成与管理技术研究

2014-07-02 00:21刘小飞于海波
测绘通报 2014年12期
关键词:空间数据入库矢量

刘小飞,关 昆,于海波,冯 涛

(天津市测绘院,天津 300381)

多源多目标空间数据库的一体化集成与管理技术研究

刘小飞,关 昆,于海波,冯 涛

(天津市测绘院,天津 300381)

在目前的地理信息工程项目中,地理空间数据库获得了越来越多的应用。随着需求的多样化,企业级空间数据库、开源空间数据库、移动端空间数据库等多种类型的存储方式在各个项目中不断出现。本文通过建立多源多目标地理空间数据库的管理体系,整合多类数据库产品的存储和管理,建立了多源的统一集成应用平台,为GIS工程项目的有效开展提供支撑。

地理空间数据库;Spatial API;数据集成;WPF框架;地理信息工程

一、引 言

地理空间数据库是用来表示地理空间实体的坐标位置及其他属性等信息的数据库,可以为各类空间数据提供标准格式、存储方法和有效的管理,能方便快速地进行检索和分析。目前多数商业或开源的数据库软件具有空间数据支持的扩展,可以按照OGC标准对空间数据进行存储和查询,如Oracle Spatial、SQL Server Spatial、IBM DB2 Spatial、PostGIS、MySQL Spatial、Spatialite等。

目前,许多地理信息工程项目使用的通常是单一的数据库产品,而地理信息不同的数据库产品之间有许多方面的不统一。不同的空间数据库产品由于各自采用不同的数据模型和数据结构,导致不同的系统彼此相对封闭、系统之间的数据交换困难。因此,有必要实现空间数据库之间的有效共享、存储和管理,建立一个可以进行集成整合的平台。

同时,由于获得空间数据的途径很多,数据来源和格式比较复杂,在实际应用中,往往需要利用不同来源的数据,这就存在数据格式转换的工作。因此,也需要建立一个GIS集成平台来满足不同格式数据的直接入库要求。

本文通过分析多源、多目标空间数据库的一体化整合方法和技术路线,设计可为各类地理信息工程使用的数据库存储应用平台,探索一条便于GIS项目开展的解决之路。通过建立统一的多源、多目标地理空间数据库管理和集成应用平台,实现一体化的管理和应用体系,为地理信息工程项目的数据融合、共享和管理提供服务,兼容多种数据格式的出入库,提供常用的数据处理功能,实现独立部署,脱离第三方环境的软件应用,方便不同GIS工程中多种数据格式的入库管理,满足不同用户对空间数据库的使用需求。

二、关键技术

1.多目标Spatial数据库开发模型

多目标空间数据库开发,即满足不同种类的空间数据库产品的开发,支持对不同的Spatial数据库的入库、存储等操作。这项工作是平台的核心内容,本文在各类数据库产品的Spatial API的基础上实现了在统一平台上的空间数据的存储、编辑、输出等操作。Spatial数据库开发路线如图1所示。

图1 Spatial数据库平台开发路线

平台在.NET环境下实现,因此,需要应用各类数据库基于.NET Framework的支持驱动,并整合在统一的平台下,包括:

1)Oracle Spatial:Oracle.DataAccess.dll;

2)SQL Server Spatial:Microsoft.Sqlserver.Types. dll;

3)PostGIS:Npgsql.dll;

4)MySQL:MySql.Data.dll;

5)Spatialite:System.Data.SQLite.dll。

2.多源地理数据的集成

针对GIS工程中常见的矢量数据,本文在分析各自数据结构的基础上给出了集成方法,包括如下几类。

(1)Esri ShapeFile(SHP)格式的数据存储

SHP矢量数据格式是美国环境系统研究所公司(Esri)开发的一种空间数据开放格式,该文件格式已经成为了地理信息软件界的一个开放标准。本文采用开源地理信息框架SharpMap来实现SHP文件的读写功能。

(2)AutoCAD DWG格式的数据存储

AutoCAD DWG格式的图形文件是一种二进制文件,格式不公开,普通用户无法直接读取其内容。本文引入了开放设计协会(Open Design Alliance)设计的DWGDirect类库,它提供了一套API直接访问DWG文件的函数库(OpenDWG),软件开发人员可以借以开发应用程序,使系统能够独立于AutoCAD平台之外访问DWG文件中的数据信息,它的核心机制在于将DWG文件中的数据转化为用户自身定义的数据结构进行表达的信息模型。

(3)DXF格式的数据存储

DXF为AutoCAD数据交换文件,是一种开放的矢量格式,应用.NET读取文本格式的文件流方法可以直接读取地理数据的空间坐标等信息。

(4)KML格式的数据存储

KML是一种基于XML语法与格式的、用于描述和保存地理信息(如点、线、图像、多边形和模型等)的编码规范,可以被Google Earth和Google Maps识别并显示。KML文件本身为文本格式,同样可以在.NET环境下采用文件流直接读取数据的坐标信息。

由于平台设计为脱离第三方环境的独立应用模式,因此使用开源GIS类库SharpMap、DWGDirect来实现数据读写功能是合适的,它避免了平台应用过程中的环境依赖性。

3.基于WPF框架的GIS平台开发

平台利用基于WPF框架的GIS平台进行开发。WPF是微软基于.NET的新一代用户界面框架,它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作。WPF在多媒体交互、二三维矢量图形、图像流界面上具有强大的优势,因此,利用WPF框架实现多目标空间数据库的一体化应用开发是非常合适的,平台基于WPF的开发内容包括两个方面:

1)WPF和Esri API的结合。Esri WPF API是构建在.NET Framework中的轻量级应用,平台采用Esri API在桌面应用中进行地理信息绘图、地理处理等功能,并且利用Map控件在WPF环境下加载REST地图服务。

2)WPF和空间数据库的结合。WPF本质属于桌面应用程序,因此可以方便地访问局域网内的空间数据库,应用.NET接口进行数据库的开发。

三、一体化集成平台设计

1.平台总体设计

平台实现了对多数据格式来源、多目标数据库方式的矢量数据管理与应用,体系结构如图2所示。

图2 一体化数据库平台体系结构

2.地图服务加载与显示

平台对于矢量数据的浏览显示、编辑等操作需要有基础地图的支撑,本文采用REST地图服务作为矢量数据管理的基础底图。基于Esri API的自适应性,REST地图来源可以有多种,无论是动态地图还是瓦片式地图,都可以加载到平台中使用。本文采用自定义的切片地图REST服务作为基础底图,通过构建类ArcGISTiledMapServiceLayer的URL地址加载基础底图。

3.矢量数据入库

矢量数据入库功能为各类矢量数据提供了向各数据库产品的入库途径,不同于普通的GIS项目中的入库流程,它是一个多对多的入库模式,即数据源和入库目标均为多种类型。平台中主要应用各数据库的.NET API来完成,在对数据进行读取和分析的基础上,调用SQL语句完成数据的Insert、Update等操作,流程如图3所示。

图3 矢量数据入库流程

4.矢量数据输出

矢量数据输出功能为数据向不同格式的导出提供解决方案,同样应用.NET API,利用SQL语句查询所要输出的记录,再通过地理数据的创建、写入方法来完成数据输出流程。对于SHP格式的文件写入,通过SharpMap类库来实现;对于DWG格式的文件写入,通过DWGDirect类库来实现;对于DXF和KML格式的文件写入,直接通过.NET类System. IO来实现。流程如图4所示。

图4 矢量数据输出流程

5.矢量数据加载与编辑

矢量数据的加载与编辑在WPF框架内借助地图服务来完成,具体包括:数据读取、数据显示、数据编辑、数据保存。

(1)数据读取

通过各类数据库的空间API来实现数据读取,查找空间图层的坐标信息

(2)数据显示

应用Esri WPF API完成,将查询到的坐标信息构建为 Esri API中的 Geometry类型,再通过构建Graphic类,指定Graphic对象的空间位置为构建的Geometry来实现:

(3)数据编辑

应用Esri WPF API来实现,利用EditGeometry类实现Map空间的Graphic编辑,包括对点(Map-Point)、线(Polyline)、面(Polygon)的节点编辑。

(4)数据保存

利用数据库API调用SQL语句实现数据保存,语法如下:

Update table Set Geometry=ST_GeomFromText(’POINT (117.5623574,39.32894523),4326)

矢量数据编辑如图5所示。

图5 矢量数据编辑

四、应用与总结

多源多目标空间数据库的一体化集成管理平台主要为各类地理信息工程的数据组织和入库服务,提供地理信息基础数据库的建库辅助工作。它最主要的功能是提供了针对多数据源、多目标产品数据库的读取和入库支持,因此,可以灵活地根据需要为不同的GIS项目提供支持。

企业级 GIS应用的数据库种类较多,包括如Oracle、SQL Server、IBM DB2、PostgreSQL、MySQL等,不同的GIS应用对数据库的需求不尽相同。以天津市测绘院为例,天津市地理信息公共服务平台的建设采用了SQL Server数据库,“天地图·天津”采用了Oracle数据库,其他众多的地理信息项目也应用了较多种类的数据库产品;同时由于在地理信息项目的建设初期,所收集的数据源千差万别,包括SHP、CAD等格式的数据,频繁的数据格式转换也占用了GIS项目建设较多的时间成本。本文所给出的一体化集成应用平台较大限度地改善了现有的局面,为不同的GIS应用提供了方便的数据库支持。

此外,平台提供的数据编辑功能,可以方便地对Spatial数据库进行直接编辑,为GIS后台管理人员提供了便利。

在移动端数据库的应用方面,目前的移动端GIS应用所采用的数据库多为 Spatialite数据库,Spatialite是在移动端数据库SQLite的基础上增加了对空间数据的支持,按照OGC标准,提供了对空间字段的存储和查询功能。

应用一体化集成应用平台可以方便地进行基础矢量数据的入库和编辑操作,由于Spatialite数据库灵活的移植性,在移动端GIS开发的过程中起到了很方便的作用。

本文通过对多源多目标产品的空间数据库的应用目标、关键技术的分析,设计开发了数据库的一体化集成管理平台,提供给各类地理信息工程进行矢量数据的入库、存储、输出、编辑等功能;并采用SharpMap、DWGDirect等开源框架进行各类数据的读写操作,方便了对不同数据来源的管理。平台基于WPF框架设计,是一个独立、免插件环境的独立应用,为多来源、多目标产品的数据库建库工作在地理信息工程中的应用提供了一个良好的解决方案。

[1] 张新海.多源空间数据的存储管理与发布研究——以天山公路(独库段)空间数据库建设为例[D].成都:成都理工大学,2007.

[2] 张菁蕾.多源空间数据的组织管理与应用[D].上海:同济大学,2007.

[3] 孙荣辉.基于Oracle+Spatial的空间数据一体化存储研究[D].北京:首都师范大学,2006.

[4] 朱冰.多源空间数据集成技术及应用[J].测绘与空间地理信息,2011,36(6):138-139.

[5] 简灿良.多尺度空间数据库的数据组织与建设[J].测绘通报,2002(1):37-39.

[6] 马照亭,潘懋,林晨,等.多源空间数据的共享与集成模式研究[J].计算机工程与应用,2002(24):31-34.

[7] 蔡先华.GIS-T空间数据库管理与应用关键技术研究[J].测绘学报,2007,36(4):476.

[8] 赫红宇,姚远,张其善.GIS数据的一体化存储管理在Oracle Spatial中的实现方法[J].无线电工程,2004 (5):4-6.

[9] 王怀宝.基于Oracle10g的WebGIS空间数据一体化存储研究[D].阜新:辽宁工程技术大学,2006.

[10] 王云帆.Oracle Spatial空间数据存储管理技术的应用研究[J].测绘通报,2011(6):76-79.

Research of Integration and Management of Multi-source Multi-target Geospatial Database

LIU Xiaofei,GUAN Kun,YU Haibo,FENG Tao

P208

B

0494-0911(2014)12-0097-04

刘小飞,关昆,于海波,等.多源多目标空间数据库的一体化集成与管理技术研究[J].测绘通报,2014(12):97-100.

10.13474/j. cnki.11-2246.2014.0408

2013-11-04

2013年度天津市测绘院科技项目(Y-2013-04)

刘小飞(1983—),女,湖南涟源人,硕士,工程师,从事GIS开发与数据处理工作。

猜你喜欢
空间数据入库矢量
重磅!广东省“三旧”改造标图入库标准正式发布!
一种适用于高轨空间的GNSS矢量跟踪方案设计
矢量三角形法的应用
中国食品品牌库入库企业信息公示②
中国食品品牌库入库企业信息公示①
GIS空间数据与地图制图融合技术
基于矢量最优估计的稳健测向方法
元数据驱动的多中心空间数据同步方法研究
三角形法则在动态平衡问题中的应用
身临其境探究竟 主动思考完任务——《仓储与配送实务》入库作业之“入库订单处理”教学案例