Я применил формулу "подшипник" от http://www.movable-type.co.uk/scripts/latlong.html. Но это кажется очень неточным - я подозреваю некоторые ошибки в моей реализации. Не могли бы вы помочь мне найти его? Мой код ниже:
protected static double bearing(double lat1, double lon1, double lat2, double lon2){
double longDiff= lon2-lon1;
double y = Math.sin(longDiff)*Math.cos(lat2);
double x = Math.cos(lat1)*Math.sin(lat2)-Math.sin(lat1)*Math.cos(lat2)*Math.cos(longDiff);
return Math.toDegrees((Math.atan2(y, x))+360)%360;
}