расстояния между двумя точками на карте

Определение расстояния между двумя точками на карте по координатам GPS

Привет всем! Вчера столкнулся с проблемой определения расстояния между двумя точками на карте по координатам GPS. Т.е. есть у нас начальные координаты точки, есть координаты точки, к которой нам нужно определить расстояние — но как это сделать?

На помощь приходит формула Хаверсина (я не ручаюсь на точность названия — в различных источниках эта формула называется самыми различными образами). Собственно, вникать в теорию не буду — ниже приведу рабочий код на Python, быть может — он вам пригодится. И да — я не претендую на оригинальность в коде — он культурно слямзен с какого-то форума (зачем изобретать велосипед, верно?).

from math import radians, cos, sin, asin, sqrt, atan2
lat1 = начальная широта
lon1 = начальная долгота
lat2 = финальная широта
lon2 = финальная долгота
lat1, lon1, lat2, lon2 = map(radians, [lat1, lon1, lat2, lon2])
print(lat1, lon1, lat2, lon2)
# haversine formula 
dlon = abs(lon2 - lon1) 
dlat = abs(lat2 - lat1) 
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * atan2(sqrt(a), sqrt(1-a)) 
r = 6371 #Указываем, если нам нужно расстояние в километрах. Если же нужно считать в милях - укажите: 3956
print(c * r)

Support the Blog!

Running a blog takes a lot of effort, time, and passion. Your donations help improve the content, inspire new ideas, and keep the project going.
If you’ve enjoyed the blog’s materials, any support would mean the world to me. Thank you for being here! ❤️

PayPal Logo Donate via PayPal

Revolut Logo Donate via Revolut