使用OGRayer图层操作的代码示例
(代码不完全,只将重要部分列出)
OGRRegisterAll(); //注册
//打开数据
OGRDataSource *poSrcDS=OGRSFDriverRegistrar::open(pszSrcShp,FALSE);
OGRDataSource *poMethodDS=OGRSFDriverRegistrar::open(poMethodDS,FALSE);
//创建数据
OGRSFDriver *poDriver=OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName("ESRI Shapefile");//创建OGRSFDriver类对象
OGRDataSource *poDstDS=poDriver->CreateDataSource(pszDstShp,NULL);//通过OGRSFDriver类对象创建OGRDataSource类对象
OGRLayer *poSrcLayer=poSrcDS->GetLayer(0);//通过OGRDataSource类对象采用GetLayer()函数创建OGRLayer 类对象
OGRLayer *poMethodLayer=poMethodDS->GetLayer(0);
OGRSpatialReference *pSRS=poSrcLayer->GetSpatialRef();
OGRLayer *poDstLayer=poDstDS->CreateLayer("polygon",pSRS,wkbPolygon,NULL);通过OGRDataSource类对象采用CreateLayer()函数创建OGRLayer 类对象
...... //一些关于OGRLayer类对象(poSrcLayer、poMethodLayer、poDstLayer)的操作
OGRDataSource::DestroyDataSource(poSrcDS);//销毁对象
OGRDataSource::DestroyDataSource(poMethodDS);
OGRDataSource::DestroyDataSource(poDstDS);
一、(src、method)
1.打开数据
OGRDataSource *poSrcDS=OGRSFDriverRegistrar::open(pszSrcShp,FALSE);
2.创建图层
OGRLayer *poSrcLayer=poSrcDS->GetLayer(0);
二、(dst)
1.创建驱动
OGRSFDriver *poDriver=OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName("ESRI Shapefile");
2.创建数据
OGRDataSource *poDstDS=poDriver->CreateDataSource(pszDstShp,NULL);
3.创建图层
OGRSpatialReference *pSRS=poSrcLayer->GetSpatialRef();
OGRLayer *poDstLayer=poDstDS->CreateLayer("polygon",pSRS,wkbPolygon,NULL);