computeOffset function
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));
}