Ответы пользователя по тегу Mapbox
  • Как узнать угол поворота маршрута в карте?

    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°).
    Ответ написан