Как вычислить расстояние между двумя географическими координатами (широта и долгота)

h(){ echo $@|awk '{d($1,$2,$3,$4);} function d(x,y,x2,y2,a,c,dx,dy){dx=r(x2-x);dy=r(y2-y);x=r(x);x2=r(x2);a=(sin(dx/2))^2+cos(x)*cos(x2)*(sin(dy/2))^2;c=2*atan2(sqrt(a),sqrt(1-a)); printf("%.4f",6372.8*c);} function r(g){return g*(3.1415926/180.);}';}


Эта команда в bash определяет функцию h(), которая использует awk для вычисления расстояния между двумя географическими координатами (широта и долгота). Она принимает четыре аргумента: широту и долготу первой точки, а затем широту и долготу второй точки. В результате выводит расстояние в километрах, округленное до четырех знаков после запятой.

Альтернативой может быть использование готовых инструментов или библиотек для вычисления расстояний между координатами, таких как Haversine formula или geopy в Python.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *