"""Distancia en km entre dos puntos lon/lat usando la formula de Haversine.""" import math def haversine_km(lon1: float, lat1: float, lon2: float, lat2: float) -> float: """Calcula la distancia en kilometros entre dos puntos dados en grados decimales. Args: lon1: longitud del primer punto en grados. lat1: latitud del primer punto en grados. lon2: longitud del segundo punto en grados. lat2: latitud del segundo punto en grados. Returns: Distancia en kilometros entre los dos puntos. """ r = 6371.0 phi1 = math.radians(lat1) phi2 = math.radians(lat2) dphi = math.radians(lat2 - lat1) dlambda = math.radians(lon2 - lon1) a = math.sin(dphi / 2) ** 2 + math.cos(phi1) * math.cos(phi2) * math.sin(dlambda / 2) ** 2 return 2 * r * math.atan2(math.sqrt(a), math.sqrt(1 - a))