computeOffset function

LatLng computeOffset(
  1. LatLng origin,
  2. num distance,
  3. num heading, {
  4. num radius = earthRadius,
})

Compute the LatLng resulting from moving a distance (in meters) from origin in the specified heading (expressed in degrees clockwise from north).

Implementation

LatLng computeOffset(
  LatLng origin,
  num distance,
  num heading, {
  num radius = earthRadius,
}) {
  final h = degToRad(heading);
  final a = distance / radius;
  final lat2 = asin(sin(degToRad(origin.lat)) * cos(a) +
      cos(degToRad(origin.lat)) * sin(a) * cos(h));
  final num lng2 = degToRad(origin.lng) +
      atan2(sin(h) * sin(a) * cos(degToRad(origin.lat)),
          cos(a) - sin(degToRad(origin.lat)) * sin(lat2));
  return LatLng(radToDeg(lat2), radToDeg(lng2));
}