Ho bisogno di calcolare la distanza in linea d'aria (km) tra due punti date la loro latitudine e la longitudine.
Ho trovato un ottima soluzione di Anthony47 (la funzione GeoDist) nel post [Excel] Creare Matrice delle Distanze ma non sono capace di adeguare il codice per il modulo di Access 2013. Qualcuno può aiutarmi?
per completezza vi replico la funzione GeoDist di Anthony47
- Codice: Seleziona tutto
Function GeoDist(Lat1, Long1, Lat2, Long2) As Double
'Risultato in Km
'Distanza tra due coordinate geografiche
'E' una semplificazione della formua di Vincenty
'
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