1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
Public Sub AffDist(ByVal dDegLong1 As Double, ByVal dDegLat1 As Double, _
ByVal dDegLong2 As Double, ByVal dDegLat2 As Double)
Dim dToRad As Double, dDistKm As Double
dToRad = (Atn(1) * 4) / 180
dDegLong1 = dDegLong1 * dToRad
dDegLat1 = dDegLat1 * dToRad
dDegLong2 = dDegLong2 * dToRad
dDegLat2 = dDegLat2 * dToRad
dDistKm = 6366 * ArcCos(Cos(dDegLat1) * Cos(dDegLat2) * Cos(dDegLong2 - dDegLong1) + _
(Sin(dDegLat1) * Sin(dDegLat2)))
MsgBox "Distance entre les deux adresses GPS : " & Format(dDistKm, "### ##0.000") & " km"
End Sub
' renvoie l'Arccosinus d'un nombre
Public Function ArcCos(dValeur As Double) As Double
On Error GoTo errortag
ArcCos = Atn(-dValeur / Sqr(-dValeur * dValeur + 1)) + 2 * Atn(1)
fin:
Exit Function
errortag:
If dValeur >= 1 Then
ArcCos = 0
Else
ArcCos = -Atn(1) * 4
End If
Resume fin
End Function |
Partager