`

GDAL读写矢量数据

阅读更多

GDAL矢量下读写库,实际使用的是OGR库,因此实际是OGR操作,OGR应用非常普遍。

  • 需求

需要生成MapInfo格式的TAB文件或者交换格式文件,以及Shape文件

 

  1. 下载编译GDAL

去网上下载,如果需要编译为windows 64位,需要修改nmake.opt,搜索“64”,去掉前面的#即可。WIN64=YES。

无论在Linux下,还是windows下,基本命令行下,输入1,2个命令即OK。

  1. 测试现有的支持哪些数据格式

在C/C++下,加入如下代码

#include "gdal.h"
#include "ogrsf_frmts.h"

int main(int argc,char * argv[])
{
	//OGRRegisterAll();

	//::RegisterOGRShape();
	::RegisterOGRTAB();
	//::RegisterOGRMIF();
	OGRSFDriverRegistrar *registrar = OGRSFDriverRegistrar::GetRegistrar();
	int count =registrar->GetDriverCount();
	printf("%d\n",count);
	for(int i=0;i<count;i++){
		printf("%s\n",registrar->GetDriver(i)->GetName());
	}

	OGRSFDriver *pOGRDriver = OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName("Mapinfo File");
	if (pOGRDriver == NULL)
	{
		printf("error");
	}
	getchar();
}

上面用于显示OGR库当前支持的所有格式名称。 

GDALAllRegister();//注册所有支持的格式,因为只关系矢量数据,那么其实等价于OGRRegisterAll();

 

 

  1. 读写相关格式文件

以MapInfo 为例,可以使用

RegisterOGRTAB();//注册mapinfo文件

也可以使用如下常见方式:

 OGRRegisterAll();
 OGRSFDriver *pOGRDriver = OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName("Mapinfo File");//注意这里面的字符串,就是在上面测试中显示的字符串

 下面读写过程,GDAL官方网站很多,最容易出错的是上面GetDriverByName();这里输入的字符串,比如网上有人说TAB格式用, Mapinfo Tab,Mapinfo Mif/Mid等,都是错误的,只要用上面的代码测试下,就知道当前系统安装了哪些格式驱动。

分享到:
评论

相关推荐

    GDAL读写shp文件代码

    `shp`文件是Esri Shapefile的一种常见矢量数据格式,广泛用于存储地理特征如点、线和多边形。本文将详细介绍如何使用GDAL在C++环境中,特别是在Visual Studio 2013下读取和写入`shp`文件。 1. **GDAL库介绍** GDAL...

    gdal读写图像分块处理

    它不仅支持栅格数据,如TIFF、JPEG、PNG等,还支持矢量数据,如Shapefile、GeoJSON等。GDAL的灵活性和广泛的支持使得它成为地理空间数据分析中的首选工具之一。 ### 图像分块处理的重要性 在处理大型地理空间图像...

    GDAL之OGR入门,读写矢量数据格式

    GDAL之OGR入门,读写矢量数据格式 GDAL(Geospatial Data Abstraction Library)是一款开源的空间数据处理库,它提供了对矢量和栅格数据的读写和处理能力。OGR(Simple Features Reference Implementation)是GDAL...

    Java用GDAL读写shapefile的方法示例

    首先,GDAL(Geospatial Data Abstraction Library)是一个强大的开源库,它允许用户处理多种空间数据格式,包括栅格和矢量数据。GDAL提供了C/C++接口,同时也支持其他编程语言,如Java。在Java中使用GDAL,需要先将...

    c++GDAL读取显示shp数据

    在GIS(地理信息系统)领域,处理空间数据时经常会用到各种格式的数据,其中SHP(Shapefile)是一种常见的矢量数据格式。C++作为一个强大的编程语言,可以通过GDAL(Geospatial Data Abstraction Library)库来操作...

    GDAL生成geoPDF源码

    GDAL(Geospatial Data Abstraction Library)是一个开源的库,用于处理地理空间数据,它支持多种栅格和矢量数据格式。在这个场景中,"GDAL生成geoPDF源码"指的是利用GDAL库来创建包含地理信息的PDF文档,也就是...

    初学QT使用Gdal

    GDAL支持的数据类型非常丰富,涵盖了栅格数据(例如PNG、GIF、JPG、TIFF、BMP等常见图像格式以及PCI、ERDAS、ArcInfo等遥感影像数据)和矢量数据(例如SHP、TAB、MIF等格式)。 #### 二、GDAL的安装配置 **1. 安装...

    android_gdal_rwshptest_solutionzcc_Androidshp_GDAL_android_

    GDAL提供了`OGR`子库,用于处理矢量数据。在Android应用中,可以通过JNI(Java Native Interface)调用C++接口来使用OGR。例如,可以创建一个 ogr_open() 函数来打开Shapefile,然后使用 ogr Layers 和 Features API...

    基于gdal的shapeflie文件的读写类(带坐标系)

    在GIS(地理信息系统)领域,数据存储通常采用各种文件格式,其中Shapefile是一种常见的矢量数据格式。本文将深入探讨如何使用GDAL库在Python中进行Shapefile文件的读写操作,尤其是涉及到坐标系统的处理。 GDAL...

    C++ 坐标点数据转shp矢量数据

    首先,GDAL(Geospatial Data Abstraction Library)是一个开源的库,它提供了对多种地理空间数据格式的读写支持,包括矢量数据如Shapefile和栅格数据如TIFF。在这个过程中,GDAL是核心工具,因为它能处理点坐标数据...

    gdal库(含gdal200.dll,gdal-i.lib文件,以及各类头文件)

    5. **GDAL支持的数据格式**:GDAL支持众多栅格和矢量数据格式,如TIFF、JPEG、PNG(栅格)、ESRI Shapefile、GeoJSON、GPKG(矢量)。这使得GDAL成为处理不同来源地理数据的强大工具。 6. **GDAL的主要功能**: - ...

    Java GDAL类库( gdal.jar + dll )下载

    3. **数据读写**:GDAL提供了读取和写入地理空间数据的能力,可以创建、修改和保存栅格和矢量数据。 4. **图像处理**:GDAL包含了一系列图像处理函数,如重采样、裁剪、镶嵌、色彩校正等,可以用于图像的处理和分析...

    GDAL开发基础入门--01

    GDAL和OGR的组合为开发者提供了处理GIS数据的完整工具链,无论是栅格数据的处理还是矢量数据的读写,它们都能够提供相应的支持。学习和掌握GDAL/OGR库对于进行地理空间数据处理的开发者来说是非常重要的。通过使用...

    GDAL2.2.3依赖包和Android项目读写shp文件示例代码

    GDAL支持多种矢量和栅格数据格式,包括ESRI Shapefile(简称shp文件),这是一种广泛使用的地理空间数据格式。在Android平台上,使用GDAL进行空间数据的读写可以为移动应用提供强大的地图处理能力。本文将详细介绍...

    gdal开源栅格空间数据转换库包括gdal-3.6.4源码,编译64位库文件

    6. **矢量操作**:GDAL也支持矢量数据的操作,如几何对象的创建、编辑、拓扑检查、属性查询等。 7. **数据驱动程序框架**:GDAL采用驱动程序架构,可以通过添加新的驱动程序来扩展对更多数据格式的支持。 在64位库...

    GDAL光栅格式和OGR向量格式

    GDAL(Geospatial Data Abstraction Library)是一个开源的库,用于处理地理空间的光栅数据,而OGR(Open Geospatial Consortium Raster)则是其对应的矢量数据处理库。这两个库是GIS(地理信息系统)领域的重要工具...

    大名鼎鼎的开源数据转换库源码 gdal1.6.3

    OGR 是 GDAL 的一部分,专门处理矢量数据。它同样采用驱动器架构,支持多种矢量数据格式。OGR 提供了对基本几何对象的操作,如创建、修改、查询以及空间分析。 **4. 投影与坐标系统** GDAL/OGR 包含 OSR(Open ...

    (李民录)GDAL数据源代码

    而"GDAL书籍数据"则可能是用于这些代码测试的地理空间数据集,可能包括不同格式的栅格和矢量数据。 通过学习这个资源,开发者不仅可以掌握GDAL的基本用法,还能深入理解其内部机制,从而能够针对特定需求进行扩展和...

    GDAL 矢量属性数据修改方式(python)

    本教程主要讲解如何使用Python接口在GDAL中修改矢量数据的属性。 1. **创建字段** 在GDAL中,我们可以通过`ogr`模块来操作矢量数据。首先,我们需要获取图层(Layer)的定义(LayerDefn),然后检查所需字段是否...

Global site tag (gtag.js) - Google Analytics