Unter der Höhe berücksichtigt werden, wenn die Berechnung der geodätischen Entfernung
derzeit im Umgang mit gps-Daten kombiniert mit präziser Höhenmessung.
Ich will berechnen Sie die Entfernung zwischen zwei consecuting Punkte. Es gibt eine Menge
Informationen über die Berechnung der Entfernung zwischen zwei Punkten über dem WGS84 ellipsoid und so weiter.
habe ich jedoch nicht finden alle Informationen, die dauert Höhe Veränderungen berücksichtigen, die für diese
Entfernungsberechnung.
weiß jemand über einige websites, Zeitungen, Bücher etc. das beschreibt eine solche Methode?
Dank
Bearbeiten: Sql Server 2008 geographische Erweiterungen auch Vernachlässigung Höhenangaben, wenn die Berechnung der Entfernung.
- Ich habe nicht geschaut auf das WGS84-Gleichungen, so Schreibe dies nicht als Antwort. Das heißt, es scheint mir, dass Sie sollten in der Lage sein, zu optimieren radius oder zwei, um Ihre mess-Punkte der "neuen" Oberfläche. Das würde wohl am besten funktionieren, wenn Ihre Höhe Messungen sind GPS-basiert; wenn die mechanische (z.B. Druck), dann "sea level" kann nur sehr wenig Beziehung auf die geoid-Modell.
- Haben Sie jemals eine gute Lösung für dieses?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Implementiert habe ich eine WGS84-Distanz-Funktion verwenden der Durchschnitt der start-und end-Höhe als die Höhe. Wenn Sie sicher sind, dass es relativ wenig Höhe-Variante auf Ihren Weg das funktioniert akzeptabel gut (Fehler ist bezogen auf den Höhenunterschied der beiden LLA-Punkte).
Hier mein code (C#):
In der Praxis haben wir festgestellt, dass der Höhenunterschied nur selten macht einen großen Unterschied, unsere Wege sind in der Regel 1-2km lang mit unterschiedlicher Höhe in der Größenordnung von 100m, und wir sehen über ~5m ändern im Durchschnitt im Vergleich zum WGS84-ellipsoid unverändert.
Edit:
Hinzufügen, um diese, wenn Sie erwarten, große Höhe ändert, können Sie konvertieren Sie Ihre WGS84-Koordinaten zu ECEF (earth-centered earth-fixed) und bewerten geradlinige Pfade wie unten in meiner Funktion. Konvertieren eines Punkt-zu-ECEF ist einfach zu tun:
Edit 2:
Ich wurde gebeten, über einige der anderen Variablen in meinem code:
LatLonAltTransformer
ist eine Klasse, die ich verwendet, um konvertieren von LatLonAlt Koordinaten in ECEF-Koordinaten und definiert die Konstanten oben.Du wahrscheinlich don ' T care über die Höhe für große 2D-Abstand separatiions. Also, wenn die dist-Sie erhalten, ist in sagen wir 20 (oder auch 50)km, dann wer kümmert sich um die Höhen-diff (hängt von Ihren Bedürfnissen ab-Fall"). Unter sagen 20km, Einspeisung in das einfache Pythagoreische addition der Höhenmeter. Füttern Sie sanft.
Distanz zwischen zwei geo-Punkte?
Ich würde vorschlagen, dass über alle Ferne, wo über dem WGS84-geben würde, Sie deutlich bessere Genauigkeit, dass der Unterschied in der Höhe keine Rolle. Und über jede Entfernung, wo der Unterschied in den Höhen, in Angelegenheiten, die Sie sollten wahrscheinlich nur straight-line-Näherung.
Damit zu tun das das erste Problem, das Sie angehen müssen, ist, wie Sie definieren, ändern in der Höhe. Die normal-Gleichungen arbeiten, weil Sie auf einer zweidimensionalen Oberfläche, jedoch das hinzufügen der Dritten dimension bedeutet, dass die einfache definition der kürzeste Abstand ist nicht mehr anwendbar, zum Beispiel jetzt die Dritte dimension ist 'im Spiel' Ihre kürzeste Entfernung konnte Schnitt durch den original-ellipsoid.
Es ist ein bisschen quick and dirty, aber Ihre beste Lösung sein könnte, zu vermuten, dass die rate der änderung der alltitude ist konstant entlang der original-2D-Pfad auf dem ellipsoid. Sie können dann die Berechnung der 2D-Abstand als die Länge, die Arbeit aus der rate der änderung der Höhe und dann einfach mit Pythagoras berechnen die Zunahme in der Länge einer Seite des Dreiecks wird der 2D-Abstand, und die Höhe der zweiten Länge.
Für Vorspeisen, müssen Sie ein Modell, das Ihnen sagt, wie ändert sich die Höhe auf die Linie zwischen den beiden Punkten. Ohne ein solches Modell, Sie haben noch keine einheitliche definition des Abstandes zwischen zwei Punkten.
Wenn man ein lineares Modell (Reisen 50% der Entfernung zwischen den Punkten bedeutet auch, Sie ging nach oben durch 50% der Höhe), dann kann man wohl behaupten, dass die ganze Sache war ein rechts-Dreieck; d.h. Sie handeln, als ob die Welt flach ist, für Zwecke der Bestimmung, wie die Höhe, die Verschiebung auf die Strecke. Der Abstand entlang der Boden ist die Basis, die Höhe ist die Höhe des Dreiecks, und die hypotenuse ist die geschätzte echte Reise-Entfernung von Punkt zu Punkt.
Wenn Sie möchten, zu verfeinern, dass eine weitere, dann können Sie beachten Sie, dass das Modell oben ist perfekt für unendlich kleine Entfernungen, die bedeutet, dass Sie zum iterieren über die einzelnen deltas von der Entfernung, Kalkül-Stil, jedes mal mit der aktuellen Höhe zu berechnen, die Entfernung vom Boden und dann mit der gleichen trigonometrischen Verhältnis zur Berechnung der Höhenunterschiede-änderung Beitrag zu der zurückgelegten Entfernung. Ich würde wahrscheinlich tun dies in einer for () - Schleife mit 10 bis 100 Stück der Strecke, und ggf. durch Versuch und Irrtum herauszufinden, die Anzahl der Stücke, die erforderlich sind, um innerhalb von epsilon den Wert true. Es wäre auch möglich, um die Linie integral, um herauszufinden, die tatsächliche Entfernung zwischen zwei Punkten unter dieses Modell.