Как определить гео координаты пикселя на сканированой карте?

Системы координат, проекции, преобразования, привязка
Ответить
Barvetal
Интересующийся
Сообщения: 41
Зарегистрирован: 28 авг 2008, 18:19
Репутация: 0

Как определить гео координаты пикселя на сканированой карте?

Сообщение Barvetal » 22 дек 2008, 14:05

Всем добрый день!

Мне в моей программе необходимо сделать следующее:
Отображать отсканированную карту. При наведении мышкой на точку в строке состояния необходимо отображать географические координаты пикселя, над которым находится курсор мышки. При этом координаты можно отображать как прямоугольные, так и которые в градусах (для меня не имеет значение, так как у меня есть код, который переводит из одного формата в другой).

Как это сделать???

Я думал сделать следующим образом:
При добавлении карты в мою программу попросить пользователя щелкнуть на все четыре угла карты. Так можно привязать изображение карты к системе координат.

А вот дальше всё непонятно... Ведь в градусах карта непрямоугольная. А оси метровых координат находятся не параллельно краям карты. Причём угол наклона метровых осей разный для разных участков одной и той же карты...

Вот есть у меня пиксельная координата пикселя. Я могу узнать разницу в пикселях между этим пикселем и пикселем верхнего левого угла (или разницу с любым другим углом). И что мне это даст?? Как мне эту разницу перевести в геокоординаты?

В общем, дайте, пожалуйста, методику или формулу, как перевести пиксельные координаты в географические..

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Как определить гео координаты пикселя на сканированой карте?

Сообщение Максим Дубинин » 27 дек 2008, 11:05

методика проста, называется географическая привязка
1. берете серию равномерно разбросанных по карте точек, получаете для них lat/long или метры, что больше нравится, можете для начала в lat/long, а потом если больше понравится в метры, а можете сразу в метры, шаги одни и те же, просто в случае метров вклинивается этап lat/long->проекция
2. вычисляете коэффициенты системы уравнений трансформации, скажем полиномиального
3. дальше, подставляете в в систему на вход свои пиксельные координаты, а получаете географические или спроектированные, какие угодно

заранее попрошу не путать трансформацию и проекционное преобразование и проблем быть не должно
пристегивайтесь, турбулентность прямо по курсу

UnderFelixAbove
Новоприбывший
Сообщения: 13
Зарегистрирован: 30 дек 2008, 11:47
Репутация: 0

Re: Как определить гео координаты пикселя на сканированой карте?

Сообщение UnderFelixAbove » 13 янв 2009, 10:31

Добрый день.
Подскажите пожалуйста подходит ли данный метод для выполнения обратной операции, т.е. имея в наличии набор контрольных точек и географические координаты (long/lat) точки - нужно определить ее положение на отсканированной карте.

UnderFelixAbove
Новоприбывший
Сообщения: 13
Зарегистрирован: 30 дек 2008, 11:47
Репутация: 0

Re: Как определить гео координаты пикселя на сканированой карте?

Сообщение UnderFelixAbove » 13 янв 2009, 11:30

Извиняюсь за глупый вопрос - просто неправильно подсчитал)... метод работает!

Barvetal
Интересующийся
Сообщения: 41
Зарегистрирован: 28 авг 2008, 18:19
Репутация: 0

Re: Как определить гео координаты пикселя на сканированой карте?

Сообщение Barvetal » 30 янв 2009, 18:24

sim писал(а):методика проста, называется географическая привязка
1. берете серию равномерно разбросанных по карте точек, получаете для них lat/long или метры, что больше нравится, можете для начала в lat/long, а потом если больше понравится в метры, а можете сразу в метры, шаги одни и те же, просто в случае метров вклинивается этап lat/long->проекция
2. вычисляете коэффициенты системы уравнений трансформации, скажем полиномиального
3. дальше, подставляете в в систему на вход свои пиксельные координаты, а получаете географические или спроектированные, какие угодно
Большое спасибо! Наконец-то добрался до этой задачи! Извините за молчанку, был занят другими работами...

Есть вопрос: а есть ли у кого исходники (или ссылка на исходники) какой-нибудь функции на любом языке программирования, в которую передаёшь координаты нескольких исходных и конечных точек, а метод возвращает сразу рассчитанные коэффициенты (или даже лучше, на заданные исходные координаты выдаёт конечные)?

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Как определить гео координаты пикселя на сканированой карте?

Сообщение Максим Дубинин » 31 янв 2009, 04:39

Barvetal писал(а):Есть вопрос: а есть ли у кого исходники (или ссылка на исходники) какой-нибудь функции на любом языке программирования, в которую передаёшь координаты нескольких исходных и конечных точек, а метод возвращает сразу рассчитанные коэффициенты (или даже лучше, на заданные исходные координаты выдаёт конечные)?
настойчиво рекомендую начинать пользоваться поиском
http://gis-lab.info/qa/polynom-calc-examples.html
пристегивайтесь, турбулентность прямо по курсу

Ответить

Вернуться в «Координаты и привязка»

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

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