haversineDistance static method

double haversineDistance(
  1. GeoPoint a,
  2. GeoPoint b
)

Calculate distance between two points using Haversine formula. Returns the distance in meters.

Implementation

static double haversineDistance(GeoPoint a, GeoPoint b) {
  const R = 6371000; // Earth radius in meters
  final lat1 = a.latitude * pi / 180;
  final lat2 = b.latitude * pi / 180;
  final dLat = (b.latitude - a.latitude) * pi / 180;
  final dLon = (b.longitude - a.longitude) * pi / 180;
  final aVal =
      sin(dLat / 2) * sin(dLat / 2) +
      cos(lat1) * cos(lat2) * sin(dLon / 2) * sin(dLon / 2);
  final c = 2 * atan2(sqrt(aVal), sqrt(1 - aVal));
  return R * c;
}