crossTrackDistanceTo method

num crossTrackDistanceTo(
  1. Coordinate l1,
  2. Coordinate start,
  3. Coordinate end, [
  4. num? radius,
])

calculate signed distance from a geo point to greate circle with start and end points

Implementation

num crossTrackDistanceTo(Coordinate l1, Coordinate start, Coordinate end,
    [num? radius]) {
  var R = radius ?? _RADIUS;

  num distStartL1 = distanceBetweenTwoGeoPoints(start, l1, R) / R;
  num radiansStartL1 =
      degToRadian(bearingBetweenTwoGeoPoints(start, l1) as double);
  num radiansEndL1 =
      degToRadian(bearingBetweenTwoGeoPoints(start, end) as double);

  num x = math
      .asin(math.sin(distStartL1) * math.sin(radiansStartL1 - radiansEndL1));

  return x * R;
}