基于OGR的通用地理数据格式转换研究
2012-12-11崔虎平
崔虎平,江 南
(信息工程大学地理空间信息学院,河南郑州450052)
一、引 言
长期以来,地理数据处理过程中的数据格式转换一直是地理信息系统的研制开发与应用过程中必不可少的,也是花费时间、经费比较大的模块。不同的地理信息系统应用程序均需要读取、转换不同格式的地理数据,然后进行查询分析。这种处理过程如图1所示。

图1 传统数据格式转换流程
每一个应用程序均需要编写大量的代码用于读取不同的文件格式,进行重复的工作,因此,需要建立一个统一的数据访问接口,使得应用软件的开发脱离这些琐碎复杂的数据格式转换。OGR简单要素库(OGR simple feature library)就是最有效的解决方案之一。
OGR是开源C++代码库,可以提供读取(部分可以写入)大量的矢量数据格式文件,如 ESRI Shape、SDTS、PostGIS、Oracle Spatial、MapInfo mid/mif和TAB文件等格式。随着开源项目的发展,OGR目前已作为地理空间数据抽象库(open geospatial data abstraction library,GDAL)的一部分,GDAL可完成栅格地理数据的读写转换,栅格数据与矢量数据处理相结合,相得益彰,使得GDAL/OGR在许多开源项目中得到了更广泛的应用,如熟悉的 Google Earth、ESRI ArcGIS 9.2+、GRASS、OpenEV、UMN MapServer、Quantum GIS(QGIS)、MapWindow 等十几个开源项目。
OGR目前支持的矢量数据格式如表1所示。

表1 OGR支持的矢量数据格式
其中,是否允许保存为No,表示当前只支持读取该文件格式;而Yes表示既可以读取此文件格式还可以写此文件格式。因此为了将某一文件格式(如MapGIS明码格式)转换为其他文件格式,只要在OGR增加相应的读取该文件格式代码,即可保存为可建立的文件格式。
本文就是使用OGR提供的矢量数据模型,在VC++开发环境下,增加读取MapGIS明码数据文件格式的相关代码,实现由MapGIS明码数据格式转换为其他矢量数据格式的功能。……
