GDAL矢量下读写库,实际使用的是OGR库,因此实际是OGR操作,OGR应用非常普遍。
- 需求
需要生成MapInfo格式的TAB文件或者交换格式文件,以及Shape文件
- 下载编译GDAL
去网上下载,如果需要编译为windows 64位,需要修改nmake.opt,搜索“64”,去掉前面的#即可。WIN64=YES。
无论在Linux下,还是windows下,基本命令行下,输入1,2个命令即OK。
- 测试现有的支持哪些数据格式
在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库当前支持的所有格式名称。

本文介绍了如何使用GDAL中的OGR库进行矢量数据的读写操作,包括如何生成MapInfo的TAB文件和Shape文件。在Windows和Linux环境下,通过简单的命令行操作即可完成GDAL的下载和编译。为了查看OGR支持的数据格式,需要调用GDALAllRegister()函数。在C/C++代码中,通过GetDriverByName()函数选择正确的数据格式驱动,例如MapInfo的TAB格式,注意避免输入错误的字符串。
最低0.47元/天 解锁文章
3075

被折叠的 条评论
为什么被折叠?



