получение координат
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 23 ноя 2010, 14:36
- Репутация: 0
получение координат
есть проблема, нужно получить координаты из geotiff с помощью афинных преобразований, решил проверить полученные результаты в "ГИС Интеграция", выяснилось, что координата х получается верной, а вот у получается не верно, может ктото сталкивался?
- nadiopt
- Гуру
- Сообщения: 4744
- Зарегистрирован: 29 янв 2009, 13:27
- Репутация: 495
- Ваше звание: хрюкало
- Откуда: Санкт-Петербург
- Контактная информация:
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 23 ноя 2010, 14:36
- Репутация: 0
Re: получение координат
хмм, я думал, что не преобразую СК, а получаю координаты, привязанные к растру, честно говоря. Тоесть код выглядит примерно так:
//получение координат
GDALGetGeoTransform( hDataset, GeoInform );
//а так получаю координаты, x и y это пиксели на растре
yToGeo = GeoInform[0] + x * GeoInform[1] + y * GeoInform[2];
xToGeo = GeoInform[3] + x * GeoInform[4] + y * GeoInform[5];
//получение координат
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: получение координат
Попробуйте так
Вы уверены, что Интеграция поддерживает СК растра?
Код: Выделить всё
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 раз.
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: получение координат
может стоит пару нулей на единички поменять? Или так и задумано?Bishop писал(а):Попробуйте так
double adfGeoTransform[6] = { 0, 0, 0, 0, 0, 0 };
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: получение координат
Это создание переменной типа double adfGeoTransform[6] и задание ей значений по-умолчанию в 0.
После вызова pGDALDataset->GetGeoTransform массив будет заполнен значениями. Можно вообще не инициализировать массив, но это не комильфо.
После вызова pGDALDataset->GetGeoTransform массив будет заполнен значениями. Можно вообще не инициализировать массив, но это не комильфо.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 19 гостей