I suspect that your code has a bug. Here is my Java code
public static void destnation(double latitudeDegrees,
double longitudeDegrees, double brng, double distance) {
System.out.println("Origin Lat = " + latitudeDegrees + " Long = "
+ longitudeDegrees + " brng = " + brng + " distance = "
+ distance);
double radius = 6371e3;
double brngRadians = Math.toRadians(brng);
double latRadians = Math.toRadians(latitudeDegrees);
double longRadians = Math.toRadians(longitudeDegrees);
double destLatRadians = Math
.asin(Math.sin(latRadians) * Math.cos(distance / radius)
+ Math.cos(latRadians) * Math.sin(distance / radius)
* Math.cos(brngRadians));
double destLongRadians = longRadians + Math.atan2(
Math.sin(brngRadians) * Math.sin(distance / radius)
* Math.cos(latRadians),
Math.cos(distance / radius)
- Math.sin(latRadians) * Math.sin(destLatRadians));
double destLatDegrees = Math.toDegrees(destLatRadians);
double destLongDegrees = Math.toDegrees(destLongRadians);
System.out.println("Destination Lat = " + destLatDegrees + " Long = "
+ destLongDegrees);
}
public static void main(String[] args) {
Util.destnation(37.4815207267064, 38.6497129186169, 310, 450);
}
and it’s output
Origin Lat = 37.4815207267064 Long = 38.6497129186169 brng = 310.0 distance = 450.0
Destination Lat = 37.48412198992392 Long = 38.64580610647096
You can compile and execute this code. Or, you could provide your inputs and I’ll run the code