我想通过使用Gdal C ++从geotiff图像中获取经度和纬度。获取这些坐标的大多数源和教程通常使用C和Phyton。我们知道,这些的Gdal源代码在C ++中是不同的。有没有任何文档或教程如何使用C ++获得这种位置?或者任何人都知道如何在Gdal C ++中获得这些坐标?
答案 0 :(得分:0)
像这样:
GDALDataset *fin = (GDALDataset*)GDALOpen(filename.c_str(), GA_ReadOnly);
if(fin==NULL)
throw std::runtime_error("Could not open file '"+filename+"' with GDAL!");
std::vector<double> geotransform(6);
if(fin->GetGeoTransform(geotransform.data())!=CE_None)
throw std::runtime_error("Could not get a geotransform!");
//From https://www.gdal.org/gdal_datamodel.html "Affine GeoTransform"
// Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2)
// Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5)
int x = 0;
int y = 0;
double lng=geotransform[0] + x*geotransform[1] + y*geotransform[2];
double lat=geotransform[3] + x*geotransform[4] + y*geotransform[5];
GDAL没有C ++接口,因此您可以像在C语言中一样完成大部分工作。