Heim  >  Artikel  >  [Mathematische Formeln und Ableitung] Berechnen Sie den Abstand zwischen zwei Punkten auf dem Boden basierend auf Längen- und Breitengrad

[Mathematische Formeln und Ableitung] Berechnen Sie den Abstand zwischen zwei Punkten auf dem Boden basierend auf Längen- und Breitengrad

藏色散人
藏色散人nach vorne
2020-10-22 11:38:493604Durchsuche

1. Annahme: Die Erde ist eine perfekte Kugel. Die Längen- und Breitengradkoordinaten zweier Punkte A und B auf dem Boden sind (Aj, Aw) bzw. (Bj, Bw). Der durchschnittliche Radius der Erde R beträgt 6371 km.

2. Erstellen Sie ein dreidimensionales rechteckiges Koordinatensystem:

Der Mittelpunkt der Erde ist der Ursprung O, die Erdachse ist die Z-Achse, die Nordpolrichtung ist die positive Richtung der Z-Achse, der Äquator Ebene ist die Ebene, in der sich die X-Achse und die Y-Achse auf dieser Ebene befinden. Die Richtung vom Mittelpunkt zum Nullgrad-Längengrad ist die positive Richtung der X-Achse, und die positive Richtung der Y-Achse wird entsprechend bestimmt zur Rechten-Hand-Regel.

Angenommen, die dreidimensionalen Koordinaten von Punkt A sind (Ax, Ay, Az) und die dreidimensionalen Koordinaten von Punkt B sind (Bx, By, Bz)

3. Idee:

Die Ebene wo Die drei Punkte A, B und O liegen auf der Erde. Die Erde schneidet sich und bildet einen Kreis mit dem Radius R. Um den Bodenabstand zwischen AB zu ermitteln, muss die Länge des Bogens AB auf dem Kreis ermittelt werden. Mit der Formel lässt sich ermitteln, dass die Bogenlänge gleich dem Radius mal dem Mittelpunktswinkel ist.

Da R bestimmt ist, kann die Länge des Bogens AB ermittelt werden, solange der Winkel θ zwischen OA und OB erhalten wird. Bogen AB=R*θ.
Winkel θ kann durch die Vektorformel ermittelt werden:

Vektor OA*Vektor OB=|OA||OB|cosθ.
Dann

cosθ=向量OA*向量OB/|OA||OB|
     =(Ax*Bx+Ay*By+Az*Bz)/R*R

4. Verwenden Sie Längen- und Breitengradkoordinaten, um die dreidimensionalen rechteckigen Koordinaten auszudrücken:

Ax=R*cosAw*cosAj
Ay=R*cosAw*sinAj
Az=R*sinAw
Bx=R*cosBw*cosBj
By=R*cosBw*sinBj
Bz=R*sinBw

Durch Einsetzen erhalten wir

cosθ=cosAw*cosAj*cosBw*cosBj+cosAw*sinAj*cosBw*sinBj+sinAw*sinBw
     =cosAw*cosBw(cosAj*cosBj+sinAj*sinBj)+sinAw*sinBw
     =cosAw*cosBw*cos(Aj-Bj)+sinAw*sinBw
θ=arccos[cosAw*cosBw*cos(Aj-Bj)+sinAw*sinBw]

5 Punkte auf dem Boden basierend auf Längen- und Breitengrad:

弧AB=R*arccos[cosAw*cosBw*cos(Aj-Bj)+sinAw*sinBw]

Erklärung:

Jeder hat schon einmal eine ähnliche Formelableitung durchgeführt. Nach langer Zeit kann es sein, dass Sie einige Dinge vergessen, also habe ich es als Referenz aufgeschrieben.

Aufgrund der Multiterminaltransformation trigonometrischer Funktionen kann diese Formel in mehr als einer Form ausgedrückt werden. Solange die Prämissenannahmen gleich sind, sollten sie mathematisch äquivalent sein und voneinander abgeleitet werden können.
Bei der Verwendung im tatsächlichen Programmcode müssen Sie auf Einheitenprobleme achten. Beispielsweise ist die vom Locator erhaltene Einheit für Längen- und Breitengrade Grad, während die Einheit der trigonometrischen Berechnung wahrscheinlich das Bogenmaß ist die Längeneinheit ist km oder m usw.

Empfohlen: „Programmiervideo

Das obige ist der detaillierte Inhalt von[Mathematische Formeln und Ableitung] Berechnen Sie den Abstand zwischen zwei Punkten auf dem Boden basierend auf Längen- und Breitengrad. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen