Tema cerrado 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Solucionado Calculo de distancias entre coordenadas GPS
20-07-2012, 08:34 AM
Mensaje: #1
Calculo de distancias entre coordenadas GPS
Tengo una funcion que en teoria calcula la distancia entre dos coordenadas GPS, es la siguiente:
Function Metros (lat1,long1,lat2,long2)
'Funcion que devuelve la distancia en metros entre dos posiciones GPS
dim x1,y1,x2,y2,DAVLAT,DAVLON
E18=6378.3888
E19=297
E14=749.671
E20=1/E19
E21=(2*E20)-(E20*E20)
' Posicion 1
DAVLAT=(Cdbl(lat1)/180)*3.1416
DAVLON=(Cdbl(long1)/180)*3.1416
E22=E18/(sqr(1-(E21*Sin(DAVLAT)*Sin(DAVLAT))))
x1=(E22+E14)*Cos(DAVLAT)*Cos(DAVLON)
y1=(E22+E14)*Cos(DAVLAT)*Sin(DAVLON)
' Posicion 2
DAVLAT=(Cdbl(lat2)/180)*3.1416
DAVLON=(Cdbl(long2)/180)*3.1416
E22=E18/(sqr(1-(E21*Sin(DAVLAT)*Sin(DAVLAT))))
x2=(E22+E14)*Cos(DAVLAT)*Cos(DAVLON)
y2=(E22+E14)*Cos(DAVLAT)*Sin(DAVLON)
Metros=sqr(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2)))
End Function

dando los siguientes valores:
1 punto: latitud 43,25748 longitud: -8,25241
2 punto: latitud 43,26365 longitud: -8,24959

devuelve: 1930,009398
no sé si son metros o kilometros, para kilometros me parece excesivo porque la lectura entre los dos puntos fue en un periodo de 1 minuto y si son metros me parece muy rapido el desplazamiento.
Encuentra todos sus mensajes
20-07-2012, 09:45 AM
Mensaje: #2
RE: Calculo de distancias entre coordenadas GPS
Intenta esta fómula, que me da mejores resultados:


Código XOne:
Distancia 6371 ACOS(COS(Lat1) * COS(Lat2) * COS(Long2 Long1) + SIN(Lat1) * SIN(Lat2)) 

Siendo:

Código XOne:
Lat1=(LATITUD1*3.141592654)/180
Lat2
=(LATITUD2*3.141592654)/180

Long1
=(LONGITUD1*3.141592654)/180
Long2
=(LONGITUD2*3.141592654)/180 


El resultado lo da en kilometros, y SIEMPRE es la distancia en línea recta entre los 2 puntos.

Saludos
Encuentra todos sus mensajes
24-07-2012, 12:11 PM (Este mensaje fue modificado por última vez en: 24-07-2012 12:12 PM por David.)
Mensaje: #3
RE: Calculo de distancias entre coordenadas GPS
Me comenta el compañero Cardama que en VBScript no existe el ACOS, así que vamos a usar el ATN, que sí existe.

El Script quedaría de la siguiente forma, lo dejo en forma de función para usarlo directamente en cualquier funciones.vbs:


Código XOne:
Function DistanciaEnKM(latitud1,longitud1,latitud2,longitud2)

dim PI,lat1,lat2,long1,long2,val

PI
=4*ATN(1)

lat1=(latitud1*PI)/180
lat2
=(latitud2*PI)/180

long1
=(longitud1*PI)/180
long2
=(longitud2*PI)/180 

val 
COS(lat1) * COS(lat2) * COS(long2 long1) + SIN(lat1) * SIN(lat2)

DistanciaEnKM 6371 * (PI - (ATN(val / (Sqr(- (val val))))))

End Function 


Saludos
Encuentra todos sus mensajes
Tema cerrado 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | XOne | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS