У вас 4, 5 или 6 проблем:
(1) end_lat = math.radians(end_long)
должно быть end_lat = math.radians(end_lat)
(2) вам не хватает некоторых вещей, о которых кто-то уже упоминал, скорее всего потому, что
(3) ваш код неразборчив (слишком длинная строка, лишние скобки, 17 бессмысленных примеров "математики")
(4) вы не заметили замечание в статье в Википедии об использовании atan2()
(5) Возможно, вы вводили координаты в широте и долготе
(6) delta(latitude)
вычисляется без необходимости; оно не фигурирует в формуле
Собираем все вместе:
from math import radians, sqrt, sin, cos, atan2
def geocalc(lat1, lon1, lat2, lon2):
lat1 = radians(lat1)
lon1 = radians(lon1)
lat2 = radians(lat2)
lon2 = radians(lon2)
dlon = lon1 - lon2
EARTH_R = 6372.8
y = sqrt(
(cos(lat2) * sin(dlon)) ** 2
+ (cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dlon)) ** 2
)
x = sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(dlon)
c = atan2(y, x)
return EARTH_R * c
>>> geocalc(36.12, -86.67, 33.94, -118.40)
2887.2599506071115
>>> geocalc(-6.508, 55.071, -8.886, 51.622)
463.09798886300376
>>> geocalc(55.071, -6.508, 51.622, -8.886)
414.7830891822618