package util import "math" func HaversineDistance(lat1 float64, lon1 float64, lat2 float64, lon2 float64) float64 { const earthRadiusKm = 6371 dLat := (lat2 - lat1) * (math.Pi / 180) dLon := (lon2 - lon1) * (math.Pi / 180) a := math.Sin(dLat/2)*math.Sin(dLat/2) + math.Cos(lat1*(math.Pi/180))*math.Cos(lat2*(math.Pi/180))* math.Sin(dLon/2)*math.Sin(dLon/2) c := 2 * math.Atan2(math.Sqrt(a), math.Sqrt(1-a)) return earthRadiusKm * c * 1000 }