Как найти угол зная широту и долготу двух точек?

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
sergio3101
Новоприбывший
Сообщения: 5
Зарегистрирован: 23 май 2017, 10:35
Репутация: 0

Как найти угол зная широту и долготу двух точек?

Сообщение sergio3101 » 23 май 2017, 10:46

Здравствуйте, я новичок на этом форуме по этому пишу сюда.
Очень нужна помощь в решении одной проблемы.
Есть две точки с координатами (например из гуглмапс) широта и долгота (latitude & longitude).
Если представить, что каждая точка является центром окружности, то как вычеслить угол вектора который направлен на точку В из точки А?
Изображение

Попробую детальней описать проблему.
Я в программе Krpano делаю 3d-панорамы. У каждой панорамы есть гео-координаты (широта и долгота).
В панораме есть возможность создавать ссылки в виде hotspot-ов, стрелочек направленных в сторону где есть следующая панорама, на основе сферических координат (ath и atv угол по вертикали и горизонтали). Кликая на них идет загрузка другой панорамы. Так вот угол по вертикали не критичен главное узнать угол по горизонтали зная широту и долготу текущей панорамы и той куда указывает стрелка.

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: Как найти угол зная широту и долготу двух точек?

Сообщение freeExec » 23 май 2017, 11:28

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

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Как найти угол зная широту и долготу двух точек?

Сообщение trir » 23 май 2017, 11:47


sergio3101
Новоприбывший
Сообщения: 5
Зарегистрирован: 23 май 2017, 10:35
Репутация: 0

Re: Как найти угол зная широту и долготу двух точек?

Сообщение sergio3101 » 23 май 2017, 12:50

Спасибо, буду разбираться

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: Как найти угол зная широту и долготу двух точек?

Сообщение Игорь Белов » 23 май 2017, 13:02

Если просто и без претензий к точности, в экселе по формуле:

tg A₀₁ = (λ₁ − λ₀) / (φ₁ − φ₀) × cos φ₀

где индексы 0 и 1 соответствуют буквам на картинке A и B.

Если нужна программа, воспользуйтесь консольной утилитой PROJ.4 geod.

Если нужна подключаемая библиотека, используйте GeographicLib.
Вложения
azimuth.xls
пример простого вычисления
(7.5 КБ) 524 скачивания
The purpose of computing is insight, not numbers

sergio3101
Новоприбывший
Сообщения: 5
Зарегистрирован: 23 май 2017, 10:35
Репутация: 0

Re: Как найти угол зная широту и долготу двух точек?

Сообщение sergio3101 » 23 май 2017, 13:25

нашел еще такой вариант, bearing это не оно?
http://www.movable-type.co.uk/scripts/latlong.html

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: Как найти угол зная широту и долготу двух точек?

Сообщение Игорь Белов » 23 май 2017, 14:26

Это решение на сфере, среднее по близости к истине между вычислениями на плоской Земле в экселе и на эллипсоиде в PROJ.4/GeographicLib.
The purpose of computing is insight, not numbers

sergio3101
Новоприбывший
Сообщения: 5
Зарегистрирован: 23 май 2017, 10:35
Репутация: 0

Re: Как найти угол зная широту и долготу двух точек?

Сообщение sergio3101 » 23 май 2017, 14:39

Игорь Белов писал(а):Это решение на сфере, среднее по близости к истине между вычислениями на плоской Земле в экселе и на эллипсоиде в PROJ.4/GeographicLib.
Спасибо Игорь. Ваша формула в екселе вполне подходит по погрешности. Тем более что все точки будут находится в радиусе 200 км.

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: Как найти угол зная широту и долготу двух точек?

Сообщение Игорь Белов » 23 май 2017, 16:05

В примере я сделал грубую ошибку: поставил синус вместо косинуса.
Вложения
azimuth.xls
исправленный пример
(7.5 КБ) 456 скачиваний
The purpose of computing is insight, not numbers

sergio3101
Новоприбывший
Сообщения: 5
Зарегистрирован: 23 май 2017, 10:35
Репутация: 0

Re: Как найти угол зная широту и долготу двух точек?

Сообщение sergio3101 » 23 май 2017, 16:47

Там выходит разница в 1 градус, примерно.

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: Как найти угол зная широту и долготу двух точек?

Сообщение Игорь Белов » 24 май 2017, 12:58

sergio3101 писал(а):Ваша формула в екселе вполне подходит по погрешности. Тем более что все точки будут находится в радиусе 200 км.
По моим ощущениям, в радиусе 200 км находятся «дистанции огромного размера». Мне стало интересно, какие погрешности Вам подходят. Для 24 точек на расстоянии 200 км от центральной, которая лежит на широте Санкт-Петербурга, я посчитал азимуты на плоской Земле, на сфере и на эллипсоиде, чтобы сравнить результаты.

На первом листе документа Excel вычисления на плоскости. Первые 4 колонки содержат координаты начальной и конечной точек, в пятой — вычисление по формуле, в шестой — результаты вычисления на эллипсоиде WGS 84 программой PROJ.4 geod, в последней — разность между формулой и точным значением. Как видите, максимальная погрешность составила 1,7 градуса в азимутах ±120°.

На втором листе в пятой колонке — вычисление на сфере по формуле сферической тригонометрии:
tg A = cos φ₂ sin (λ₂ − λ₁) / [cos φ₁ sin φ₂ − sin φ₁ cos φ₂ cos (λ₂ − λ₁)]
Максимальная погрешность получилась 0,05 градуса в азимутах ±135°.
Вложения
azimuth2.xls
азимут: плоскость и сфера в сравнении с эллипсоидом
(15.5 КБ) 462 скачивания
The purpose of computing is insight, not numbers

Ответить

Вернуться в «Я новичок!»

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

Сейчас этот форум просматривают: Ahrefs [Bot], Semrush [Bot] и 5 гостей