@Holyboom
junior fullstack

Как установить точки на карте под 90 градусов относительно другой точки?

Короче суть в чем, есть две точки в маршруте. С их помощью получаю азимут , и мне надо от первой точки поставить еще две точки под 90 градусов слева и справа.
В каких-то ситуациях все работает , но частенько получается дич...

вот код который я юзаю, может кто найдет косяк?

// myAngele - азимут движения от точки с мигалкой до точки с машинкой
// 30 - расстояние от точки с мигалкой
          var p180= 180/pi;
          var dx =  p180 * ((cos(myAngele / 180 * pi) * 30) / 6378137) ;
          var dy =  p180 * ((sin(myAngele / 180 * pi) * 30) / 6378137) ;
          var dot_left_lan = dot_a.latitude + dy;
          var dot_left_lng = dot_a.longitude + dx / cos(dot_a.latitude);
          var dot_right_lan = dot_a.latitude - dy;
          var dot_right_lng = dot_a.longitude - dx / cos(dot_a.latitude);


61ce258d1e32d456951372.png

но иногда работает норм хз изза чего
61ce2658183db003340960.png
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
hint000
@hint000
у админа три руки
И почему никто не хочет потратить пару минут на поиск старых вопросов по тегу #геолокация??
https://qna.habr.com/q/1052604
https://qna.habr.com/q/734847
https://qna.habr.com/q/649729 (тут в комментариях смотрите)

Кратко: у вас в коде есть константа 6378137. Понимаете её смысл или это просто была копипаста магического числа?
Знаете, что различных картографических проекций много? И формулы очень разные для разных проекций. Сильно сомневаюсь, что ваши карты в проекции Меркатора (как-то не используют её в навигаторах). Скорее https://ru.wikipedia.org/wiki/Проекция_Гаусса_—_Крюгера А потому читайте ответы по ссылкам выше (хотя вопросы там были другие, но суть ошибок та же).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы