Страница 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 массив будет заполнен значениями. Можно вообще не инициализировать массив, но это не комильфо.