krishnadhulipalla's picture
First commit
0e11366
raw
history blame contribute delete
464 Bytes
from math import radians, sin, cos, asin, sqrt
from typing import Tuple
def haversine_km(a: Tuple[float, float], b: Tuple[float, float]) -> float:
"""Distance in km between (lat,lon) points a, b."""
lat1, lon1 = a
lat2, lon2 = b
R = 6371.0
dlat = radians(lat2 - lat1)
dlon = radians(lon2 - lon1)
lat1r, lat2r = radians(lat1), radians(lat2)
h = sin(dlat/2)**2 + cos(lat1r)*cos(lat2r)*sin(dlon/2)**2
return 2 * R * asin(sqrt(h))