public static Point destination(Point point1,double distance,double bearing,String units) throws TurfException {
  double degrees2radians=Math.PI / 180;
  double radians2degrees=180 / Math.PI;
  Position coordinates1=point1.getCoordinates();
  double longitude1=degrees2radians * coordinates1.getLongitude();
  double latitude1=degrees2radians * coordinates1.getLatitude();
  double bearingRad=degrees2radians * bearing;
  double radians=TurfHelpers.distanceToRadians(distance,units);
  double latitude2=Math.asin(Math.sin(latitude1) * Math.cos(radians) + Math.cos(latitude1) * Math.sin(radians) * Math.cos(bearingRad));
  double longitude2=longitude1 + Math.atan2(Math.sin(bearingRad) * Math.sin(radians) * Math.cos(latitude1),Math.cos(radians) - Math.sin(latitude1) * Math.sin(latitude2));
  return Point.fromCoordinates(Position.fromCoordinates(radians2degrees * longitude2,radians2degrees * latitude2));
}

public static Point destination ( Point point1 , double distance , double bearing , String units ) throws TurfException { double degrees2radians = Math . PI / 180 ; double radians2degrees = 180 / Math . PI ; Position coordinates1 = point1 . getCoordinates ( ) ; double longitude1 = degrees2radians * coordinates1 . getLongitude ( ) ; double latitude1 = degrees2radians * coordinates1 . getLatitude ( ) ; double bearingRad = degrees2radians * bearing ; double radians = TurfHelpers . distanceToRadians ( distance , units ) ; double latitude2 = Math . asin ( Math . sin ( latitude1 ) * Math . cos ( radians ) + Math . cos ( latitude1 ) * Math . sin ( radians ) * Math . cos ( bearingRad ) ) ; double longitude2 = longitude1 + Math . atan2 ( Math . sin ( bearingRad ) * Math . sin ( radians ) * Math . cos ( latitude1 ) , Math . cos ( radians ) - Math . sin ( latitude1 ) * Math . sin ( latitude2 ) ) ; return Point . fromCoordinates ( Position . fromCoordinates ( radians2degrees * longitude2 , radians2degrees * latitude2 ) ) ; }
takes a point and calculates the location of a destination point given a distance in degrees , radians , miles , or kilometers ; and bearing in degrees . this uses the haversine formula to account for global curvature .
