Форум: "Прочее";
Поиск по всему сайту: www.delphimaster.net;
Текущий архив: 2010.11.14;
Скачать: [xml.tar.bz2];




Вниз

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


@!!ex ©   (2010-08-06 08:53) [0]

Есть обычная плоская географическая карта(развертка сферы на плоскость).
Типа такой:
http://astrolab.ru/cgi-bin/img.cgi?i=5/00000017.jpg&p=galery

Пользователь кликает на карте мышкой.
Нужно сделать две вещи:
1) Определить географические координаты клика(широта/долгота)
2) Определить расстояние до предыдущего клика

Как это проще всего сделать?



12 ©   (2010-08-06 08:56) [1]

Думаю что, заранее связать матрицу координат с картинкой



KilkennyCat ©   (2010-08-06 08:57) [2]

1:10000



12 ©   (2010-08-06 08:58) [3]

еще
по таким картам ни за что не определить координаты клика в Гренладии, на Аляске, на Чукотке
Адекватна только приэкваториальная зона



@!!ex ©   (2010-08-06 09:02) [4]


> [2] KilkennyCat ©   (06.08.10 08:57)

Нет. Так не выйдет. Это же прямоугольник. а координаты на сфере. на экваторе можно просто брать значения, а ближе к полсам идет искажение, которое надо учитывать. Как?

> [3] 12 ©   (06.08.10 08:58)
> по таким картам ни за что не определить координаты клика
> в Гренладии, на Аляске, на Чукотке
> Адекватна только приэкваториальная зона

Вот-вот. :)



Anatoly Podgoretsky ©   (2010-08-06 09:14) [5]

> @!!ex  (06.08.2010 08:53:00)  [0]

Ты видишь какая Антарктида большая, хрен измеришь



Anatoly Podgoretsky ©   (2010-08-06 09:15) [6]

> @!!ex  (06.08.2010 09:02:04)  [4]

Проще всего по таблице соответствий и далее расчет по формуле



RWolf ©   (2010-08-06 09:17) [7]


> @!!ex ©   (06.08.10 09:02) [4]
>  Это же прямоугольник. а координаты на сфере. на экваторе
> можно просто брать значения

Значения чего? в распоряжении программы только широта и долгота, их всё равно придётся переводить в километры, что на экваторе, что в гренландии.



MBo ©   (2010-08-06 09:58) [8]

Для начала надо узнать, какая проекция используется.



12 ©   (2010-08-06 09:59) [9]

можно так рассуждать
Центральная линия - экватор, 40 000 км
Верхняя и нижняя - полюсы, 0 км

посчитать произвольную линию неа картинке как
2 Pi sqrt ((полурадиус Земли) в двадрате - (отдаление плоскости сечения Земли от центра) в квадрате)



Jeer ©   (2010-08-06 10:00) [10]


> Как это проще всего сделать?


Открыть книжку "Картография" и вникнуть в существо вопроса.

Почитать о проекциях Меркатора ( поперечных ) и основанных на них пространственных системах координат ( ПСК ), таких как UTM и/или Гаусса-Крюгера.



Jeer ©   (2010-08-06 10:01) [11]


> Для начала надо узнать, какая проекция используется.


Очень часто сделать это ( узнать ) для сдернутого откуда-то растрового рисунка можно только предположительно :)



RWolf ©   (2010-08-06 10:02) [12]

> 12 ©   (06.08.10 08:58) [3]
> еще по таким картам ни за что не определить координаты клика
> в Гренладии, на Аляске, на Чукотке
> Адекватна только приэкваториальная зона

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



RWolf ©   (2010-08-06 10:08) [13]


>  [12]

впрочем, в условиях задачи ничего не сказано про равномерность координат по Y; скажем, в проекции с сохранением площадей это условие соблюдаться не будет.



Jeer ©   (2010-08-06 10:18) [14]


> RWolf ©   (06.08.10 10:08) [13]


Не надо ничего выдумывать на ходу - все определяется в каждом конкретном случае принятой для создания плоского отображения референц-моделью Земли, проекцией и основанной на ней плоской системой координат.



12 ©   (2010-08-06 10:25) [15]


> RWolf ©
[12]
[13]

Наверняка и в том и в др.случае можно извратится как-нить

но и выходит, что, наверное, проще
> Думаю что, заранее связать матрицу координат с картинкой
A:Array of array of tPoint; где храним круговые координаты
по углам они будут повторятся чаще, ближе к центру реже, в центре практически уникальны.
Для пиксела на картинке(группы рядом стоящих пикселов) - свой элемент матрицы.
Ткнули в картинку - достали соотв.элемент из матрицы. Посчитали



Медвежонок Пятачок ©   (2010-08-06 10:30) [16]

да можно все там определить. другое дело как именно.

представьте что на каждом квадратном метре земли лежит листок на котором напечатаны координаты.

берем и землю и делаем любую проекцию такой земли на плоскость.

какая бы искаженная она ни была, на ней все равно будут нарисованы правильные координаты. остается только сделать привязку пикселей битмапа к к координатам.

это я к тому, что задача в принципе решаема.



Jeer ©   (2010-08-06 10:49) [17]

Сплошные велосипедисты :)



12 ©   (2010-08-06 11:31) [18]


> Jeer ©

походу, как и Alx2, скоро начну фигеть от кол-ва Ваших "хоббей" :)



Jeer ©   (2010-08-06 11:38) [19]

Если задача "любительская" и сделать предположение, что использована проекция типа "широта, долгота", т.е. "тупое" проецирование шара на касательный цилиндр, то все на уровне ЦПШ

y = R * tg(B) // "широта" в прямоугольной СК в [м]
Отсюда легко получаем B - географическую широту
R - средний радиус Земли

x = 2*PI * R // долгота в ПСК [м]

Зная, что гео-широта +/- 90, а гео-долгота +/- 180 - проблем с переводом быть не должно.



Jeer ©   (2010-08-06 11:56) [20]


> какая бы искаженная она ни была, на ней все равно будут
> нарисованы правильные координаты


В корне неверно.
Есть такое понятие, как эллипс искажения (идикатрисса Тиссо).
В учебниках по картографии они приводятся и хорошо видно, что типов проекций без искажений не существует.

В любой проекции существуют:
- искажения длин
- искажения углов
- искажения площадей
- искажения форм



12 ©   (2010-08-06 12:07) [21]


> В любой проекции существуют:
> - искажения длин

Ну, это вряд - ли
Существуют карты для прибрежного транспорта,  там вся карта - одна прямая :)
т.е. линия побережья вытянута в прямую линию, т.к. один фиг они вдоль берега ходят



Jeer ©   (2010-08-06 12:09) [22]


> Существуют карты для прибрежного транспорта,  там вся карта
> - одна прямая


Это уже не карта в картографическом понимании, а рисунок.



Pavia ©   (2010-08-06 12:14) [23]

Во первых координаты можно узнать в программе OziExplorer.

Только к изображению еще нужна привязка.

Теперь по поводу проекции. На сколько я понял чаще всего используется цилиндрическая проекция по алгоритму Mercator.

В сети много сайтов по проекциям карт но мне понравился вот этот.
http://members.shaw.ca/quadibloc/maps/mcy0101.htm

А так я бы поискал библиотеку, где все написано.

Кстати никто не знает почему долгота может расходится?



Думкин ©   (2010-08-06 12:17) [24]


> В любой проекции существуют:
> - искажения длин
> - искажения углов
> - искажения площадей
> - искажения форм

Все это выражается тем, что не существует изометрии с изменением кривизны.



12 ©   (2010-08-06 12:30) [25]


> Это уже не карта в картографическом понимании, а рисунок.

Как это, не карта..
Проекция? Проекция.
Реальные масштабы - вполне.

т.е. берем нитку, обкладываем вдоль берега, Байкал, например.
Где важные пункты на берегу или пристани - ставим на нитке зарубку
Потом нитку распрямляем, или распрямляем и в окружность замыкаем(, чтоб лес экономить :)) и все, телемаркет..

Скока горючки сожгем - померяли длинну дуги, посчитали.
Через сколько доедем из А в Б - померяли, на скорость нашего чудо-ковчега :) поделили



Jeer ©   (2010-08-06 12:35) [26]


> На сколько я понял чаще всего используется цилиндрическая
> проекция по алгоритму Mercator.


Чаще - где ?

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

Для СССР и России чаще всего использовалась разновидности конических проекций для карт мелкого масштаба ( миллионники )

Для генштабок ( топокарты) - цилиндрическая равноугольная проекция Гаусса-Крюгера. Меридианы в ней непараллельны.

В западной картографии используют разновидность цилиндрической проекции ( секущий цилиндр ) - универсальная поперечная проекция Меркатора (UTM), хотя это точнее и не проекция, а система координат.



Pavia ©   (2010-08-06 12:38) [27]


> Jeer ©   (06.08.10 11:38) [19]

Ошибка в выборе проекции. Хотя в 10 вы все правильно написали.

> Jeer ©   (06.08.10 11:56) [20]

Читай внимательнее. Координаты и формы это разные понятия.

12 -тый пробует изобретать не разобравшись в вопросе.

Анатолий толе дело говорит толе просто выпендривается. Скорее второе.
Так как слово datum так и не проскочило.

Самое странно никто библиотеку не по советовал. А значит тут нет профессионалов.



Медвежонок Пятачок ©   (2010-08-06 12:52) [28]

В корне неверно.
Есть такое понятие, как эллипс искажения (идикатрисса Тиссо).


Да хоть параллелипипед гиперискажения.
Какая разница-то?



Медвежонок Пятачок ©   (2010-08-06 12:54) [29]

Беру рисунок что выше по ссылке.
Беру каждый его пиксель.
Визуально привязываю пиксель на глобусе.
получаю тру координаты.
и так для каждого пикселя.

все.
после этого куда бы я ни ткнул на картинке я имею координаты



Jeer ©   (2010-08-06 12:55) [30]


> Как это, не карта..
> Проекция? Проекция.


Не будем спорить, т.к. к вопросу по теме Ваш пример отношения не имеет.
Это специальная карта (специальный картографический рисунок в масштабе), для решения частных задач специальной группы пользователей.
Проекциями там и не пахнет :)



Anatoly Podgoretsky ©   (2010-08-06 12:58) [31]

> Jeer  (06.08.2010 12:55:30)  [30]

А мы его заставим координаты по этой карте вычислять, веревку и мыло за его
счет.



Jeer ©   (2010-08-06 12:58) [32]


> > Jeer ©   (06.08.10 11:56) [20]
>
> Читай внимательнее. Координаты и формы это разные понятия.
>


Хэх, я-то прочитал "лежат квадраты" :)



Jeer ©   (2010-08-06 13:07) [33]


> Так как слово datum так и не проскочило.
>
> Самое странно никто библиотеку не по советовал. А значит
> тут нет профессионалов.


Датум или референц-эллипсоид для его случая не принципиальны.

На рисунке у него явно цилиндрическая нормальная проекция.

Зачем ему супер-пупер библиотека ?



Pavia ©   (2010-08-06 13:36) [34]

У меня в принципе аналогичный случай.

> Зачем ему супер-пупер библиотека ?

Да хотя бы чтобы ему не разбираться в WGS84 и СК42.
У негоже еще координаты в WGS получаются с GPS. А тут выговорите о  проекции шара на цилиндер.  Т.е надо эллипсоид WGS84 к шару приводить? Или как?


> Датум или референц-эллипсоид для его случая не принципиальны.

С референц-эллипсоид я еще не разбирался. Но может он влиять на долготу? И на сколько сильно?



Jeer ©   (2010-08-06 14:36) [35]


> Pavia ©   (06.08.10 13:36) [34]
>
> У меня в принципе аналогичный случай.


Я не знаю какие у вас с ним задачи.
Для того, чтобы ткнуть мышкой в указанный им растровый файл и получить гео-координаты, вполне достаточно (по виду карты) предположения о том, что это нормальная цилиндрическая проекция.
Для такого случая точности ( мышкой в экран ) не стоит заморачиваться с эллипсоидом, вполне достаточно шара.
Т.е. мы имеем шар, вписанный соосно в цилиндр, высотой в диаметр шара.
Вычисления тут простейшие.

Референц-эллипсоид, как и datum - это составляющие геодезической системы координат (ГСК).
Первая описывает сфероид ( эллипсоид ), как приближение к форме Земли, вторая - ориентацию сфероида, относительно геоида.

Опять же, для его случая точности, совершенно безразлично какой datum.



Jeer ©   (2010-08-06 14:51) [36]

Библиотека, хорошо известная профи:
http://trac.osgeo.org/proj/



12 ©   (2010-08-06 14:54) [37]


> Датум или референц-эллипсоид


> ориентацию сфероида, относительно геоида.

вот, блин, ты, Александр, спросил на свою шею :)



Jeer ©   (2010-08-06 15:18) [38]

Геоид - это гравитационная модель Земли, с заданной точностью описывающая функцию геопотенциала на поверхности и совпадающий с центром масс земли.

Сфероид ( эллипсоид ), имеющий международное значение и совпадающий по началу координат с геоидом - это WGS84.
Отклонение от ц.м. Земли менее 2 см, нулевой меридиан отстоит от Гринвичского на ~ 5.3 уг.сек.

В России также существует геоцентрическая СК SGS85, основанная на отечественном же сфероиде SGS85. (ГЛОНАСС)

Топоцентрические СК.

Вместе с тем в различных странах, пользуются локальными сфероидами (эллипсоидами), которые имеют смещения (локальные датумы), относительно геоида, в т.ч. и от WGS.

В России - это эллипсоид Красовского и  СК Пулково (42, 63 ( военная), 91 )



Dimka Maslov ©   (2010-08-06 21:03) [39]

Берём любой учебник по геодезии. Там всё прекрасно расписано, как с карты снять координаты.




Форум: "Прочее";
Поиск по всему сайту: www.delphimaster.net;
Текущий архив: 2010.11.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.82 MB
Время: 0.027 c
10-1169756215     Asail                 2007-01-25 23:16  2010.11.14  
Неполный список книг в Excel 2003


2-1281704590      Axel54                2010-08-13 17:03  2010.11.14  
Запись инфомации по помещению в БД


15-1280511663     Darth Revan           2010-07-30 21:41  2010.11.14  
HowTo: Полностью избавиться от меток.


3-1236772625      Ulugbek               2009-03-11 14:57  2010.11.14  
DBgridEh ошибка фильтре Error in expression


2-1282423057      Rembo                 2010-08-22 00:37  2010.11.14  
Наследование: вызов метода потомка через родителя