import 'dart:math'; const double _earthRadiusKm = 6371; /// Distância em linha reta (km) entre duas coordenadas, pela fórmula de /// Haversine — suficiente para ordenar/agrupar consultórios por /// proximidade, sem precisar de nenhum pacote de mapas. double haversineDistanceKm(double lat1, double lon1, double lat2, double lon2) { final dLat = _toRadians(lat2 - lat1); final dLon = _toRadians(lon2 - lon1); final a = sin(dLat / 2) * sin(dLat / 2) + cos(_toRadians(lat1)) * cos(_toRadians(lat2)) * sin(dLon / 2) * sin(dLon / 2); final c = 2 * atan2(sqrt(a), sqrt(1 - a)); return _earthRadiusKm * c; } double _toRadians(double degrees) => degrees * pi / 180;