Я видел много ответов по расчету подшипника. Тем не менее, каков наилучший способ расчета пеленга между 2 точками с учетом широт, долгот и углов. Я получаю широты, долготы и углы от нашего бэкэнда.
Я пробовал это, используя LatLn:
private float bearing(com.google.android.gms.maps.model.LatLng latLng1,
com.google.android.gms.maps.model.LatLng latLng2) {
double PI = 3.14159;
double lat1 = latLng1.latitude * PI / 180;
double long1 = latLng1.longitude * PI / 180;
double lat2 = latLng2.latitude * PI / 180;
double long2 = latLng2.longitude * PI / 180;
double dLon = (long2 - long1);
double y = Math.sin(dLon) * Math.cos(lat2);
double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1)
* Math.cos(lat2) * Math.cos(dLon);
float bearng = (float) Math.atan2(y, x);
bearng = (float) Math.toDegrees(bearng);
bearng = (bearng + 360) % 360;
if (bearng < 0) {
bearng = bearng + 360;
}
return bearng;
}
Используя углы:
private float bearing(float fromAngle, float toAngle) {
float diffInAngle = toAngle - fromAngle;
if (diffInAngle < -180) {
diffInAngle += 360;
}
if (diffInAngle > 180) {
diffInAngle -= 360;
}
return diffInAngle + fromAngle;
}
Какой из них является правильный путь, если есть? Кроме того, как подшипник отличается от курса или направления?
Кажется, что есть небольшая разница, хотя согласно этому посту https://www.mathsteacher.com.au/year7/ch08_angles/07_bear/bearing.htm