分配WGS84后未检索到GDAL SetProjection

时间:2013-07-31 08:03:12

标签: projection gdal wgs84

我有这个代码将Geographic Projection设置为GeoTiff文件。

poDataset = (GDALDataset *) GDALOpen( fileName.c_str(), GA_Update);

OGRSpatialReference oSRS;
char *pszSRS_WKT = NULL;

oSRS.SetWellKnownGeogCS( "WGS84" );
oSRS.exportToWkt( &pszSRS_WKT );
oSRS.SetProjCS( pszSRS_WKT );

std::cout<<"Setted Proj: "<<pszSRS_WKT<<endl;
CPLErr err = poDataset->SetProjection( pszSRS_WKT );
std::cout<<"Proj Error: "<<err<<endl;

double        adfGeoTransform[6];
CPLErr err2 = poDataset->GetGeoTransform( adfGeoTransform );
std::cout<<"Error: "<<err2<<endl;

std::string str = poDataset->GetProjectionRef();
std::cout<<"Retrieved Proj: "<<str<<endl;

结果是

Proj: GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,A
UTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM
["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHOR
ITY["EPSG","9108"]],AUTHORITY["EPSG","4326"]]**

Proj Error: 0

Error: 3

Retrieved Proj:

代码似乎合理,可能是这个错误的原因是什么?

先谢谢

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,当您设置投影时,您也应该分配新的GeoTransformation。 打电话

poDataset->SetGeoTransform(adfGeoTransform);

解决了我的问题。