@Davidaa_WoW

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

Нужна формула для измерения расстояния между двумя точками, в пределах одного города. Работаю на одной nocode платформе, так что программное решение не подходит, как и калькуляторы всякие, да и апишники подключать не хочется ради решения, которое можно реализовать внутри платформы, используя формулу. Из данных есть широта и долгота двух точек.
Я нашёл пока в интернете такую формулу: cos(d) = sin(φА)·sin(φB) + cos(φА)·cos(φB)·cos(λА − λB), чтобы вычислить по ней расстояние мы берём arccos и умножаем на 6371. Вот только попробовав измерить расстояние между двумя точками в пределах города, у меня получилось 38 километров, когда в калькуляторах выходит 600 метров. Что я делаю не так?
  • Вопрос задан
  • 989 просмотров
Пригласить эксперта
Ответы на вопрос 1
hint000
@hint000
у админа три руки
и умножаем на 6371
это "радиус" Земли. Но это только в детском саду учат, что Земля имеет форму шара. Уже в средней школе на уроках географии должны бы учить, что форма Земли - эллипсоид (а в профильном ВУЗе объяснят, что и это не точно). Т.е. "радиус" от центра Земли до полюса меньше, чем "радиус" от центра до экватора. Поэтому для практических рассчётов нельзя обойтись одной константой 6371. Приходится либо брать параметры эллипсоида и считать по более сложным формулам, либо пользоваться таблицами длины дуги меридиана и длины дуги параллели, например, этой таблицей. В пределах одного города поверхность можно условно считать плоской и вычислить расстояние по теореме Пифагора.

Формула, которую вы нашли, сама по себе верна для сферы. Она называется "формула пяти элементов", и в данном случае угол A = 90 градусов.
у меня получилось 38 километров, когда в калькуляторах выходит 600 метров.
Большая ошибка могла возникнуть потому, что вы не перевели углы из градусов в радианы. Подавляющее большинство библиотек математических функций считают углы в радианах, если явно не оговаривается иное.
За счёт того, что Земля слегка приплюснута, у вас будет какая-то погрешность - вместо 600 м получится 595 м или 605 м, но, конечно, не в десятки раз.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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