Entfernungsberechnung
GISWiki - Das freie Portal für Geoinformatik (GIS)
Version vom 5. Dezember 2007, 20:17 Uhr von HeinzJ (Diskussion | Beiträge)
Code
Visual Basic
Function Entf(ByVal Laenge1 As Double, ByVal Breite1 As Double, _ ByVal Laenge2 As Double, ByVal Breite2 As Double) As Double 'Ermittelt die Entfernung zwischen zwei Orten auf der Erde. 'Laenge1 und Breite1 stellen die geografische Lage des ersten, 'Laenge2 und Breite2 des zweiten Ortes dar. Dim Erdradius As Double Erdradius = 6370 Entf = aCos(Sin(DtoR(Breite1)) * Sin(DtoR(Breite2)) + Cos(DtoR(Breite1)) _ * Cos(DtoR(Breite2)) * Cos(DtoR(Laenge1 - Laenge2))) * Erdradius End Function ------ Function DtoR(Grad As Double) As Double 'Konvertiert Winkel im Gradmaß in Winkel im Bogenmaß DtoR = Grad / (180 / PI()) End Function ------- Function aCos(X As Double) As Double If X < -1 Then X = -1 ElseIf X = -1 Then aCos = PI() ElseIf X > -1 And X < 1 Then aCos = 2 * Atn(1) - Atn(X / Sqr(-X * X + 1)) Else aCos = 0 End If 'Zu beachten ist: -1 < X < 1, Arccos(-1) = Pi und Arccos(1) = 0 End Function