Ciao a tutti,
sto cercando da diverse ore degli script ASP per il calcolo delle distanze tra due punti, x,y espressi in latitudine e longitudine.
Inoltre mi servirebbe il calcolo della rotta, cioè sapere se il punto y rispetto a x ha un inclinazione di Z gradi.
es. Milano e a Nord-Ovest di Roma, quindi tra le due città dovrebbe esserci un'angolazione di 320 ° circa... (stimo ad occhio)
ho trovato alcuni script per il calcolo della distanza tra due punti, ma ho avuto risultati discordanti con altre applicazioni che si trovano on line.
Qualcuno ha qualcosa di già pronto?
Grazie.
Segue quanto ho trovato per il calcolo della distanza in KM e in Miglia.
Su questo script pero' ho un problema ad esempio se provo a calcolare la distanza ROMA LOS ANGELES, forse per le coordinate negative di los angeles.
codice:<% 'COORDINATE DI ESEMPIO per prove 'roma 41.8954656, 12.4823243 'parigi 48.8566667, 2.3509871 'los angeles 34.0522342, -118.2436849 lat1 = 41.8954656 lon1 = 12.4823243 'lat2 = 48.8566667 'lon2 = 2.3509871 lat2 = 34.0522342 lon2 = -118.2436849 Response.write distance(lat1, lon1, lat2, lon2, "K") & " KM " 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 * 1.609344) / 1.852 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

Rispondi quotando
