ciao optime avevo già provato questa soluzione ma mi da errore:
Chiamata di routine o argomento non validi: 'sin'
questa è la funzione:
Codice PHP:
const pi = 3.14159265358979323846
Function distance(lat1,lon1,lat2,lon2,unit)
Dim theta, dist
theta = lon1 - lon2
dist = sin(deg2rad(lat1)) * sin(deg2rad(lat2)) + cos(deg2rad(lat1)) * cos(deg2rad(lat2)) * cos(deg2rad(theta))
dist = acos(dist)
dist = rad2deg(dist)
distance = dist * 60 * 1.1515
Select Case ucase(unit)
Case "K"
distance = distance * 1.609344
Case "N"
distance = distance * 0.8684
End Select
End Function
' This function get the arccos function from arctan function
Function acos(rad)
If Abs(rad) <> 1 Then
acos = pi/2 - Atn(rad / Sqr(1 - rad * rad))
ElseIf rad = -1 Then
acos = pi
End If
End function
' This function converts decimal degrees to radians
Function deg2rad(Deg)
deg2rad = cdbl(Deg * pi / 180)
End Function
'
' This function converts radians to decimal degrees
'
Function rad2deg(Rad)
rad2deg = cdbl(Rad * 180 / pi)
End Function
riga errore
dist = sin(deg2rad(lat1)) * sin(deg2rad(lat2)) + cos(deg2rad(lat1)) * cos(deg2rad(lat2)) * cos(deg2rad(theta))