[Talk-de] Distanz-Berechnungen aus Koordinaten
Florian Heer
florianheerfheb at yahoo.de
Fr Sep 19 01:42:11 UTC 2008
Hi!
Ich weiß, dass das nur so halb hier her passt, und wenn mir jemand einen
besseren Platz zum Fragen nennen kann, bzw. Webseiten, wo alles gut
erklärt ist, oder oder oder: gerne.
Mein aktuelles Hauptproblem ist die Berechnung von Distanzen zwischen 2
Koordinaten im WGS-84. Nach kompf.de und zumindest rudimentärem
Verständnis des Problems ist eine einfache Formel (= eine, die nur
gerine Entfernungen berücksichtigt):
Entfernung in km = wurzel (dx² + dy²)
mit:
dx = 111.3 * cos(lat) * (lon1 - lon2)
lat = (lat1 + lat2) / 2 * 0.01745
dy = 111.3 * (lat1 - lat2)
Breite, Länge in Grad
So weit so gut, wenn ich meine gesammelten Tracks danach berechne (und
extreme Werte [>1km/sek] ignoriere, also Startbedingungen von Tracks),
ergibt sich meist ein Wert, der mit den Berechnungen von NoniGPSPlot
halbwegs deckt (was meine Loggersoftware ist).
Bei einigen (ca. 20%) der Tracks, stimmen die Werte aber nicht (Fehler
weit über 1%), weshalb ich zweifeln muss, entweder an meiner
Implementation oder der anderer Software.
Einen Track hab ich mir speziell angesehen, laut Noni-GPS ist der 8.53
km, laut meiner Berechnung 10.42 und laut
http://www.kompf.de/trekka/#client=®ion=Deutschland
ist er 8.3 km lang.
Sind schon etwas stärkere Abweichungen.
Meine Implementation in Java ist:
lat = (lat1 + lat2) / 2 * 0.01745;
dx = 111.3 * Math.cos(lat) * (lon1 - lon2);
dy = 111.3 * (lat1 - lat2);
localDistance = Math.sqrt(dx*dx+dy*dy);
und das dann für jeden Punkt (gegen seinen Vorläufer) eines Tracks
summiert, natürlich sind alle Zahlen double.
Mögliche Ursachen:
- Konstanten (111.3 bzw 0.01745) sind falsch
- Massive Rundungsfehler (ich glaub nicht, aber glauben kann ich in der
Kirche oder so ähnlich)
- auch bei geringen Entfernungen ist die Formel nicht korrekt
- Implementationsfehler
- meine Implementation ist richtig, alle anderen stinken... :-)
Kann mir jemand da weiter helfen?
Vielleicht andere Implementationen, bei denen ich Tracks hochladen kann
um Ergebnisse zu vergleichen...?
Viele Grüße, Florian.
Mehr Informationen über die Mailingliste Talk-de