computeOffset static method
Returns the point resulting from moving distance meters from from in
the specified heading (degrees clockwise from north).
Implementation
static Point<double> computeOffset(
Point<double> from, double distance, double heading) {
distance /= MathUtils.earthRadius;
heading = toRadians(heading);
// http://williams.best.vwh.net/avform.htm#LL
final fromLat = toRadians(from.x);
final fromLng = toRadians(from.y);
final cosDistance = cos(distance);
final sinDistance = sin(distance);
final sinFromLat = sin(fromLat);
final cosFromLat = cos(fromLat);
final sinLat =
cosDistance * sinFromLat + sinDistance * cosFromLat * cos(heading);
final dLng = atan2(sinDistance * cosFromLat * sin(heading),
cosDistance - sinFromLat * sinLat);
return Point(toDegrees(asin(sinLat)), toDegrees(fromLng + dLng));
}