Можно ли преобразовать пиксельные координаты изображения в lat, long с помощью GDAL в C ++? - PullRequest
0 голосов
/ 10 июля 2020

У меня есть изображение в формате tiff с географической привязкой, которое имеет опорный кадр EPSG 4326. У меня есть набор точек, которые мне нужно преобразовать в широту и долготу. Я использую Visual Studio вместе с GDAL 2.3.1 для своего проекта. Я не могу получить эквивалент C ++ нижеприведенного, который находится в python:

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

Содержимое внутри моего main показано ниже:

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();

Я начал с использования пример кода в link , который дал мне тот же результат lat, что и местоположение моего пикселя. Как такое возможно? Есть ли в библиотеке GDAL функция any для преобразования координат пикселей в широту и долготу в EPSG 4326. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 10 июля 2020

Я использую библиотеку node-gdal, чтобы делать то же самое. Вы можете следовать примеру на https://github.com/naturalatlas/node-gdal/blob/master/examples/gdalinfo.js, чтобы увидеть, как они преобразуют пиксель в координаты широты / долготы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...