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

3

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

1个回答

1

Like so:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接