File size: 464 Bytes
0e11366
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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))