Страница 1 из 1

получение координат

Добавлено: 23 ноя 2010, 14:52
whatsUpDoc
есть проблема, нужно получить координаты из geotiff с помощью афинных преобразований, решил проверить полученные результаты в "ГИС Интеграция", выяснилось, что координата х получается верной, а вот у получается не верно, может ктото сталкивался?

Re: получение координат

Добавлено: 23 ноя 2010, 14:53
nadiopt
из какой СК в какую преобразуете?

Re: получение координат

Добавлено: 23 ноя 2010, 15:44
whatsUpDoc
хмм, я думал, что не преобразую СК, а получаю координаты, привязанные к растру, честно говоря. Тоесть код выглядит примерно так:
//получение координат
GDALGetGeoTransform( hDataset, GeoInform );

//а так получаю координаты, x и y это пиксели на растре
yToGeo = GeoInform[0] + x * GeoInform[1] + y * GeoInform[2];
xToGeo = GeoInform[3] + x * GeoInform[4] + y * GeoInform[5];

Re: получение координат

Добавлено: 23 ноя 2010, 23:23
Дмитрий Барышников
Попробуйте так

Код: Выделить всё


double adfGeoTransform[6] = { 0, 0, 0, 0, 0, 0 };
CPLErr err = pGDALDataset->GetGeoTransform(adfGeoTransform);
double rX(0), rY(0);
GDALApplyGeoTransform( adfGeoTransform, RasterX, RasterY, &rX, &rY );

Вы уверены, что Интеграция поддерживает СК растра?

Re: получение координат

Добавлено: 23 дек 2010, 07:51
gamm
Bishop писал(а):Попробуйте так
double adfGeoTransform[6] = { 0, 0, 0, 0, 0, 0 };
может стоит пару нулей на единички поменять? Или так и задумано?

Re: получение координат

Добавлено: 23 дек 2010, 09:23
Дмитрий Барышников
Это создание переменной типа double adfGeoTransform[6] и задание ей значений по-умолчанию в 0.
После вызова pGDALDataset->GetGeoTransform массив будет заполнен значениями. Можно вообще не инициализировать массив, но это не комильфо.