在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗



我的图像是一个地理参考tiff图像,其参考系为EPSG 4326。我有一组点,我需要转换为lat和long。我的项目使用的是Visual Studio和GDAL 2.3.1。我无法获得python中的C++等价物:

"trans = gdal.transformer(image, None [])
success,xyz=trans.TransformPoint(0,Posx,Posy)
lat=xyz[0]
long=xyz[1]
"

我的主页中的内容如下所示:

GDALAllRegister();
GDALDataset* data = (GDALDataset*) GDALOpen(filename,GA_ReadOnly);
OGRSpatialReference source,target;
source.importFromEPSG(4326);
target.importFromEPSG(4326);
//setting my pixels here for pixel location(500,500)
OGRPoint p; 
p.setX(500); 
p.setY(500); 
p.assignSpatialReference(&source);
p.transformTo(&target);
// transformed coordinates 
cout << p.getX() << " | " << p.getY();

我一开始使用链接中的示例代码,这给了我相同的lat结果,只要我的像素位置。这怎么可能?是GDAL库中用于将EPSG 4326中的像素坐标转换为Lat和Long的任何函数。感谢您的帮助。

我使用节点gdal库来做同样的事情。您可以在https://github.com/naturalatlas/node-gdal/blob/master/examples/gdalinfo.js查看他们如何将像素转换为lat/lon坐标。

最新更新