如何使用Gdal C ++从geotiff图像中获取经度和纬度

时间:2016-09-19 03:19:38

标签: c++ gdal

我想通过使用Gdal C ++从geotiff图像中获取经度和纬度。获取这些坐标的大多数源和教程通常使用C和Phyton。我们知道,这些的Gdal源代码在C ++中是不同的。有没有任何文档或教程如何使用C ++获得这种位置?或者任何人都知道如何在Gdal C ++中获得这些坐标?

1 个答案:

答案 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语言中一样完成大部分工作。