
Function GeoDist(Lat1, Long1, Lat2, Long2) As Double
risultato in km
Dim Raggio As Double, PiGrec As Double, X As Double, Y As Double
Raggio = 6372.8 'Raggio Terra, Km
PiGrec = Application.pi
'
' gradi a radianti
Lat1 = Lat1 * PiGrec / 180
Lat2 = Lat2 * PiGrec / 180
dLon = (Long2 - Long1) * PiGrec / 180 ' delta long
'
X = Sin(Lat1) * Sin(Lat2) + Cos(Lat1) * Cos(Lat2) * Cos(dLon)
Y = Sqr((Cos(Lat2) * Sin(dLon)) ^ 2 + (Cos(Lat1) * Sin(Lat2) - Sin(Lat1) * Cos(Lat2) * Cos(dLon)) ^ 2)
Geodist = WorksheetFunction.Atan2(X, Y) * Raggio
'
End Function |
Function GeoDist(Lat1, Long1, Lat2, Long2) As Double
risultato in km
Dim Raggio As Double, PiGrec As Double, X As Double, Y As Double
Raggio = 6372.8 'Raggio Terra, Km
PiGrec = Application.pi
'
' gradi a radianti
Lat1 = Lat1 * PiGrec / 180
Lat2 = Lat2 * PiGrec / 180
dLon = (Long2 - Long1) * PiGrec / 180 ' delta long
'
X = Sin(Lat1) * Sin(Lat2) + Cos(Lat1) * Cos(Lat2) * Cos(dLon)
Y = Sqr((Cos(Lat2) * Sin(dLon)) ^ 2 + (Cos(Lat1) * Sin(Lat2) - Sin(Lat1) * Cos(Lat2) * Cos(dLon)) ^ 2)
Geodist = WorksheetFunction.Atan2(X, Y) * Raggio
'
End Function |
