1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Function DISTANCE(ByVal i As Integer, ByVal j As Integer) As Double
Dim Lat1 As Double, Lat2 As Double, Lon1 As Double, Lon2 As Double, Tmp As Double
Const R As Integer = 6371 ' de la terre, en km
Lat1 = DEG2RAD(Tb(i, 2))
Lon1 = DEG2RAD(Tb(i, 3))
Lat2 = DEG2RAD(Tb(j, 2))
Lon2 = DEG2RAD(Tb(j, 3))
' Calcul
Tmp = (Sin(Lat1) * Sin(Lat2)) + (Cos(Lat1) * Cos(Lat2) * Cos(Lon1 - Lon2))
If Abs(Tmp - 1) < 0.00000000000001 Then
DISTANCE = 0
Else
DISTANCE = WorksheetFunction.Acos(Tmp) * R
End If
End Function |
Partager