GDAL(Geospatial Data AbstractionLibrary)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。
本文将使用GDAL/OGR库读写Postgresql数据库中的表,代码执行环境在ubuntu12.04,
直接上代码
#include "/usr/include/gdal/ogrsf_frmts.h"
#include "/usr/include/gdal/ogr_feature.h"
#include "/usr/include/gdal/ogr_geometry.h"
#include "/usr/include/gdal/gdal_priv.h"
///
//使用OGR读Postgresql
///
int getFeature( vector<RoadRec>& RoadList //RoadRec是自定义数据结构
)
{
OGRRegisterAll();
const char* filepath =
"PG:dbname=test host=127.0.0.1 port=5432 user=postgres password=postgres";
const char* drivename = "PostgreSQL"; //标明是Postgresql数据库操作
const char* ptablename = "roadlist";//数据表名称 table name
OGRSFDriver* pdriver = NULL;
OGRLayer* player = NULL;
OGRDataSource* pDS = NULL;
//注册驱动,这样ogr就知道即将打开的是什么类型的文件
pdriver = OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName(drivename);
if ( pdriver == NULL ) {
return FAILURE;
}
//驱动注册完毕打开数据库
pDS = pdriver->Open(filepath,0);
if ( NULL == pD