Aby podać nagłówek, należy obliczyć położenie.
Aby zrozumieć łożysko, przeczytaj this article.
Według tego article (section bearing) formuła jest:
θ = atan2(sin Δλ ⋅ cos φ2 , cos φ1 ⋅ sin φ2 − sin φ1 ⋅ cos φ2 ⋅ cos Δλ)
where φ1, λ1 is the start point,
φ2, λ2 the end point,
Δλ is the difference in longitude`
Oto przykład, jak obliczyć kąt (w stopniach) pomiędzy dwoma punktami wyrażone w szerokości/długości. (wykonane w języku C#)
Załóżmy, że Point
to prosta klasa z dwoma atrybutami double
X (dla długości) i Y (dla szerokości geograficznej).
public double ComputeBearing(Point start,Point end)
{
var φ1 = start.Y; //latitude 1
var λ1 = start.X; //longitude 1
var φ2 = end.Y; //latitude 2
var λ2 = end.X; //longitude 2
var y = Math.Sin(this.degreeToRadian(λ2 - λ1)) * Math.Cos(this.degreeToRadian(φ2));
var x = Math.Cos(this.degreeToRadian(φ1)) * Math.Sin(this.degreeToRadian(φ2)) - Math.Sin(this.degreeToRadian(φ1)) * Math.Cos(this.degreeToRadian(φ2)) * Math.Cos(this.degreeToRadian(λ2 - λ1));
var θ = Math.Atan2(y, x);
θ = this.radianToDegree(θ);
return θ;
}
stosując następujące metody:
public double degreeToRadian(double angle)
{
return Math.PI * angle/180.0;
}
public double radianToDegree(double angle)
{
return angle * (180.0/Math.PI);
}
Korzystając ComputeBearing
będzie łatwo uzyskać kąt wyrażony w stopniach łatwo użytecznych jako nagłówek
myślę, że słowo szukasz nie mając kąt. łożysko jest kierunkiem jazdy wyświetlanym na kompasie podczas przemieszczania się z punktu a do punktu b. – Roadie57