dmc1989
@dmc1989

Как узнать угол поворота маршрута в карте?

У меня есть 2 точки координат, по ним я строю маршрут. В данном примере тут линия, по ней движеться маркер. Как узнать угол поворота маршрута, чтобы можно было повернуть и маркер и карту, чтобы они шли вертикально, а не под каким то углом?5e751353831d3731248820.jpeg
route: 
(3) [Array(2), Array(2), Array(2)]
0: (2) [24.04133, 49.83574]
1: (2) [24.04065, 49.83425]
2: (2) [24.04133, 49.83574]
length: 3

5e75153602125635548910.jpeg
  • Вопрос задан
  • 24 просмотра
Решения вопроса 1
hint000
@hint000
у админа три руки
посчитать разность долгот dlon=E24.04133-E24.04065=0.00068
посчитать разность широт dlat=N49.83574-N49.83425=0.00149

разность широт умножить на длину дуги меридиана. (Строго говоря, длина дуги меридиана слегка меняется на разных широтах, но для вашего применения хватит приблизительного значения: длина дуги 1° меридиана ~ 111 км).

разность долгот умножить на длину дуги параллели, а вот она очень сильно меняется от широты, можно взять приблизительное значение из таблицы, а можно заморочиться, и считать по формуле, выбрав параметры эллипсоида Земли.

Итак, умножив разности в градусах на длины дуг, получим разности в прямоугольной системе координат, обозначим их dlat1, dlon1. Тогда azimuth = (atan((dlat1)/(dlon1))).
Осталось лишь перевести радианы в градусы (если арктангенс был посчитан в радианах), и не запутаться с направлением поворота (учитывать знаки разностей, знак угла).
P.S. также тут Капитан Очевидность из за спины напоминает, что азимут отсчитывается от направления на север (север = 0°).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы