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

Ответить
whatsUpDoc
Новоприбывший
Сообщения: 2
Зарегистрирован: 23 ноя 2010, 14:36
Репутация: 0

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

Сообщение whatsUpDoc » 23 ноя 2010, 14:52

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

Аватара пользователя
nadiopt
Гуру
Сообщения: 4744
Зарегистрирован: 29 янв 2009, 13:27
Репутация: 495
Ваше звание: хрюкало
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение nadiopt » 23 ноя 2010, 14:53

из какой СК в какую преобразуете?
ин гроссен фамилен нихт клювен клац клац

whatsUpDoc
Новоприбывший
Сообщения: 2
Зарегистрирован: 23 ноя 2010, 14:36
Репутация: 0

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

Сообщение whatsUpDoc » 23 ноя 2010, 15:44

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

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

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

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

Вы уверены, что Интеграция поддерживает СК растра?
Последний раз редактировалось Дмитрий Барышников 23 дек 2010, 09:24, всего редактировалось 1 раз.

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 23 дек 2010, 07:51

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

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

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

Сообщение Дмитрий Барышников » 23 дек 2010, 09:23

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

Ответить

Вернуться в «GDAL/OGR»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 19 гостей