我想通过使用Gdal C++从geotiff图像获取纬度和经度。大多数用于获取这些坐标的源代码和教程通常使用C和Phyton。正如我们所知,这些的Gdal源在C ++中是不同的。是否有任何文档或教程可以教授使用C ++获取此类位置的方法?或者有没有人知道如何在Gdal C ++中获取这些坐标?
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语言中一样完成大部分工作。