Ich verwende einen VB Code um aus 2 NMEA Koordinaten die Distanz zu berechnen.
Das ganze funktioniert auch sehr gut. Jetzt habe ich zwei Koordinaten, wo ich aber einen viel zu großen Wert bekomme.
Die Koordinaten lauten:
Breite start: 46.999913
Länge start: 15.492768
Breite Ende: 47.000023
Länge Ende: 15.492642
Wenn ich diese Zahlen z.B. mit der Webseite mountainbiker.ch/inhalt/distanz-berechnen/aWQ9MTEz.html berechne, bekomme ich als Ergebnis: 0.01832998357263285 km, das auch stimmt.
Wenn ich diese Zahlen aber mit meinem VB Code berechne, bekomme ich 44,54 km heraus. Andere Koordinaten funktionieren ohne Probleme und decken sich mit den Ergebnissen der Internetseite.
Hier der Code den ich verwende:
'/// Beginn Code
Option Explicit
Public Function GetDistance _
(Latitude1 As Double, _
Longitude1 As Double, _
Latitude2 As Double, _
Longitude2 As Double _
) As Double
Dim Lat1 As Double
Dim Lat2 As Double
Dim Lon1 As Double
Dim Lon2 As Double
Lat1 = Deg2Rad(Latitude1)
Lat2 = Deg2Rad(Latitude2)
Lon1 = Deg2Rad(Longitude1)
Lon2 = Deg2Rad(Longitude2)
GetDistance = _
ArcCos(Sin(Lat1) * Sin(Lat2) _
+ Cos(Lat1) * Cos(Lat2) _
* Cos(Lon2 - Lon1)) * 6378.388
End Function
Public Function DezimalGrad _
(Grad As Double, _
Min As Double, _
Sec As Double _
) As Double
DezimalGrad = Grad + Min / 60 + Sec / 3600
End Function
Public Function ArcCos(X As Double) As Double
ArcCos = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
End Function
Public Function Deg2Rad _
(AngleDegrees As Double) As Double
Deg2Rad = AngleDegrees * Pi / 180
End Function
Public Function Pi() As Double
Pi = 4 * Atn(1)
End Function
' \\\ Ende Code
Hoffe da kann mir jemand weiterhelfen, wo da mein Problem liegen könnte.
Vielen Dank für jede Antwort
Das ganze funktioniert auch sehr gut. Jetzt habe ich zwei Koordinaten, wo ich aber einen viel zu großen Wert bekomme.
Die Koordinaten lauten:
Breite start: 46.999913
Länge start: 15.492768
Breite Ende: 47.000023
Länge Ende: 15.492642
Wenn ich diese Zahlen z.B. mit der Webseite mountainbiker.ch/inhalt/distanz-berechnen/aWQ9MTEz.html berechne, bekomme ich als Ergebnis: 0.01832998357263285 km, das auch stimmt.
Wenn ich diese Zahlen aber mit meinem VB Code berechne, bekomme ich 44,54 km heraus. Andere Koordinaten funktionieren ohne Probleme und decken sich mit den Ergebnissen der Internetseite.
Hier der Code den ich verwende:
'/// Beginn Code
Option Explicit
Public Function GetDistance _
(Latitude1 As Double, _
Longitude1 As Double, _
Latitude2 As Double, _
Longitude2 As Double _
) As Double
Dim Lat1 As Double
Dim Lat2 As Double
Dim Lon1 As Double
Dim Lon2 As Double
Lat1 = Deg2Rad(Latitude1)
Lat2 = Deg2Rad(Latitude2)
Lon1 = Deg2Rad(Longitude1)
Lon2 = Deg2Rad(Longitude2)
GetDistance = _
ArcCos(Sin(Lat1) * Sin(Lat2) _
+ Cos(Lat1) * Cos(Lat2) _
* Cos(Lon2 - Lon1)) * 6378.388
End Function
Public Function DezimalGrad _
(Grad As Double, _
Min As Double, _
Sec As Double _
) As Double
DezimalGrad = Grad + Min / 60 + Sec / 3600
End Function
Public Function ArcCos(X As Double) As Double
ArcCos = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
End Function
Public Function Deg2Rad _
(AngleDegrees As Double) As Double
Deg2Rad = AngleDegrees * Pi / 180
End Function
Public Function Pi() As Double
Pi = 4 * Atn(1)
End Function
' \\\ Ende Code
Hoffe da kann mir jemand weiterhelfen, wo da mein Problem liegen könnte.
Vielen Dank für jede Antwort