distanceBetweenTwoGeoPoints method

num distanceBetweenTwoGeoPoints(
  1. Coordinate l1,
  2. Coordinate l2, [
  3. num? radius
])

calculate the distance in meters between two geo points

Implementation

num distanceBetweenTwoGeoPoints(Coordinate l1, Coordinate l2, [num? radius]) {
  radius = radius ?? _RADIUS;
  var R = radius;
  num l1LatRadians = degToRadian(l1.y);
  num l1LngRadians = degToRadian(l1.x);
  num l2LatRadians = degToRadian(l2.y);
  num l2LngRadians = degToRadian(l2.x);
  var latRadiansDiff = l2LatRadians - l1LatRadians;
  var lngRadiansDiff = l2LngRadians - l1LngRadians;

  num a = math.sin(latRadiansDiff / 2) * math.sin(latRadiansDiff / 2) +
      math.cos(l1LatRadians) *
          math.cos(l2LatRadians) *
          math.sin(lngRadiansDiff / 2) *
          math.sin(lngRadiansDiff / 2);
  num c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a));
  var distance = R * c;

  return distance;
}