![]() |
Entfernungsbrechnung von OpenStreetMap-Koordinaten
Ich möchte gerne die Entfernung zwischen 2 Koordinaten berechnen. Der erste Wert kommt von eime GPS-System und der zweite von Koordinaten, die über OpenStreetMap ermittelt wurden.
Die Formel für die Berechnung habe ich von ![]() Meine Funktion sieht folgendermaßen aus:
Delphi-Quellcode:
Das von der Funktion berechnete Ergebnis lautet: 735.91 km.
function DistanceKM(lat1, lon1, lat2, lon2: Extended): Extended;
begin Result:=6378.388 * ArcCos(sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 - lon1)); end; Lasse ich die beiden Koordinaten jedoch bei ![]() Kann mir jemand sagen, was an der Formel falsch ist? |
AW: Entfernungsbrechnung von OpenStreetMap-Koordinaten
Hast du den Unterschied Grad/Rad berücksichtigt?
|
AW: Entfernungsbrechnung von OpenStreetMap-Koordinaten
hmm...
Versuche es mal mit:
Delphi-Quellcode:
Mavarik :coder:
function GetDistanceBetween(lat1,Long1,lat2,Long2 : Double) : Double;
var F,G,L : Double; SF, SG, SL, CF, CG, CL : Double; W1, W2 : Double; S, C : Double; O,R,D : Double; H1, H2 : Double; ff : Double; begin try ff := 1 / 298.257; F := (lat1 + lat2) / 2; G := (lat1 - lat2) / 2; L := (long1 - long2) / 2; SF := Sin(F*Pi/180); SG := Sin(G*Pi/180); SL := Sin(L*Pi/180); CF := Cos(F*Pi/180); CG := Cos(G*Pi/180); CL := Cos(L*Pi/180); W1 := sqr(SG * CL); W2 := sqr(CF * SL); S := W1 + W2; W1 := sqr(CG * CL); W2 := sqr(SF * SL); C := W1 + W2; if C = 0.0 then exit(0.0); O := ArcTan(Sqrt(S/C)); if O = 0.0 then exit(0.0); R := Sqrt(S*C) / O; D := 2 * O * 6378.14; H1 := (3*R-1) / (2*C); H2 := (3*R+1) / (2*S); W1 := sqr(SF * CG) * H1 * ff + 1; W2 := sqr(CF * SG) * H2 * ff; result := D * (W1 - W2) * 1000; except Result := 0; end; end; |
AW: Entfernungsbrechnung von OpenStreetMap-Koordinaten
Zitat:
Zitat:
|
AW: Entfernungsbrechnung von OpenStreetMap-Koordinaten
Das Problem ist das die Erde KEINE Kugel ist, und es wohl deshalb zig verschiedene Versionen einer solchen Berechnung gibt.
Welche jetzt "amtlich" ist kann ich nicht sagen, aber vielleicht gibt es hier ja ein paar Geo-Spezialisten. Hier nur mal ein paar Versionen ![]() ![]() |
AW: Entfernungsbrechnung von OpenStreetMap-Koordinaten
Zitat:
|
AW: Entfernungsbrechnung von OpenStreetMap-Koordinaten
Über diese Berechnungen kann man Doktorarbeiten schreiben (und das haben auch diverse Geographen getan). Die meisten Formeln sind über kurze Entfernungen ganz brauchbar, über längere gibt es mehr oder weniger große Abweichungen.
Ich habe das Glück, dass meine Berechnungen meist nur über ein paar Kilometer genau sein müssen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz