Я реализовал формулу "подшипника" из 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;
}