haversine method

double haversine(
  1. LatLng p1,
  2. LatLng p2
)

Implementation

double haversine(LatLng p1, LatLng p2) {
  var lat1 = p1.latitudeInRad,
      lat2 = p2.latitudeInRad;
  var lon1 = p1.longitudeInRad,
      lon2 = p2.longitudeInRad;

  var earthRadius = 6378137.0; // WGS84 major axis
  double distance = 2 *
      earthRadius *
      asin(sqrt(pow(sin(lat2 - lat1) / 2, 2) +
          cos(lat1) * cos(lat2) * pow(sin(lon2 - lon1) / 2, 2)));

  return distance;
}