Как определить гео координаты пикселя на сканированой карте?
-
- Интересующийся
- Сообщения: 41
- Зарегистрирован: 28 авг 2008, 18:19
- Репутация: 0
Как определить гео координаты пикселя на сканированой карте?
Всем добрый день!
Мне в моей программе необходимо сделать следующее:
Отображать отсканированную карту. При наведении мышкой на точку в строке состояния необходимо отображать географические координаты пикселя, над которым находится курсор мышки. При этом координаты можно отображать как прямоугольные, так и которые в градусах (для меня не имеет значение, так как у меня есть код, который переводит из одного формата в другой).
Как это сделать???
Я думал сделать следующим образом:
При добавлении карты в мою программу попросить пользователя щелкнуть на все четыре угла карты. Так можно привязать изображение карты к системе координат.
А вот дальше всё непонятно... Ведь в градусах карта непрямоугольная. А оси метровых координат находятся не параллельно краям карты. Причём угол наклона метровых осей разный для разных участков одной и той же карты...
Вот есть у меня пиксельная координата пикселя. Я могу узнать разницу в пикселях между этим пикселем и пикселем верхнего левого угла (или разницу с любым другим углом). И что мне это даст?? Как мне эту разницу перевести в геокоординаты?
В общем, дайте, пожалуйста, методику или формулу, как перевести пиксельные координаты в географические..
Мне в моей программе необходимо сделать следующее:
Отображать отсканированную карту. При наведении мышкой на точку в строке состояния необходимо отображать географические координаты пикселя, над которым находится курсор мышки. При этом координаты можно отображать как прямоугольные, так и которые в градусах (для меня не имеет значение, так как у меня есть код, который переводит из одного формата в другой).
Как это сделать???
Я думал сделать следующим образом:
При добавлении карты в мою программу попросить пользователя щелкнуть на все четыре угла карты. Так можно привязать изображение карты к системе координат.
А вот дальше всё непонятно... Ведь в градусах карта непрямоугольная. А оси метровых координат находятся не параллельно краям карты. Причём угол наклона метровых осей разный для разных участков одной и той же карты...
Вот есть у меня пиксельная координата пикселя. Я могу узнать разницу в пикселях между этим пикселем и пикселем верхнего левого угла (или разницу с любым другим углом). И что мне это даст?? Как мне эту разницу перевести в геокоординаты?
В общем, дайте, пожалуйста, методику или формулу, как перевести пиксельные координаты в географические..
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Как определить гео координаты пикселя на сканированой карте?
методика проста, называется географическая привязка
1. берете серию равномерно разбросанных по карте точек, получаете для них lat/long или метры, что больше нравится, можете для начала в lat/long, а потом если больше понравится в метры, а можете сразу в метры, шаги одни и те же, просто в случае метров вклинивается этап lat/long->проекция
2. вычисляете коэффициенты системы уравнений трансформации, скажем полиномиального
3. дальше, подставляете в в систему на вход свои пиксельные координаты, а получаете географические или спроектированные, какие угодно
заранее попрошу не путать трансформацию и проекционное преобразование и проблем быть не должно
1. берете серию равномерно разбросанных по карте точек, получаете для них lat/long или метры, что больше нравится, можете для начала в lat/long, а потом если больше понравится в метры, а можете сразу в метры, шаги одни и те же, просто в случае метров вклинивается этап lat/long->проекция
2. вычисляете коэффициенты системы уравнений трансформации, скажем полиномиального
3. дальше, подставляете в в систему на вход свои пиксельные координаты, а получаете географические или спроектированные, какие угодно
заранее попрошу не путать трансформацию и проекционное преобразование и проблем быть не должно
пристегивайтесь, турбулентность прямо по курсу
-
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 30 дек 2008, 11:47
- Репутация: 0
Re: Как определить гео координаты пикселя на сканированой карте?
Добрый день.
Подскажите пожалуйста подходит ли данный метод для выполнения обратной операции, т.е. имея в наличии набор контрольных точек и географические координаты (long/lat) точки - нужно определить ее положение на отсканированной карте.
Подскажите пожалуйста подходит ли данный метод для выполнения обратной операции, т.е. имея в наличии набор контрольных точек и географические координаты (long/lat) точки - нужно определить ее положение на отсканированной карте.
-
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 30 дек 2008, 11:47
- Репутация: 0
Re: Как определить гео координаты пикселя на сканированой карте?
Извиняюсь за глупый вопрос - просто неправильно подсчитал)... метод работает!
-
- Интересующийся
- Сообщения: 41
- Зарегистрирован: 28 авг 2008, 18:19
- Репутация: 0
Re: Как определить гео координаты пикселя на сканированой карте?
Большое спасибо! Наконец-то добрался до этой задачи! Извините за молчанку, был занят другими работами...sim писал(а):методика проста, называется географическая привязка
1. берете серию равномерно разбросанных по карте точек, получаете для них lat/long или метры, что больше нравится, можете для начала в lat/long, а потом если больше понравится в метры, а можете сразу в метры, шаги одни и те же, просто в случае метров вклинивается этап lat/long->проекция
2. вычисляете коэффициенты системы уравнений трансформации, скажем полиномиального
3. дальше, подставляете в в систему на вход свои пиксельные координаты, а получаете географические или спроектированные, какие угодно
Есть вопрос: а есть ли у кого исходники (или ссылка на исходники) какой-нибудь функции на любом языке программирования, в которую передаёшь координаты нескольких исходных и конечных точек, а метод возвращает сразу рассчитанные коэффициенты (или даже лучше, на заданные исходные координаты выдаёт конечные)?
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Как определить гео координаты пикселя на сканированой карте?
настойчиво рекомендую начинать пользоваться поискомBarvetal писал(а):Есть вопрос: а есть ли у кого исходники (или ссылка на исходники) какой-нибудь функции на любом языке программирования, в которую передаёшь координаты нескольких исходных и конечных точек, а метод возвращает сразу рассчитанные коэффициенты (или даже лучше, на заданные исходные координаты выдаёт конечные)?
http://gis-lab.info/qa/polynom-calc-examples.html
пристегивайтесь, турбулентность прямо по курсу
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя