Calcular distancia entre dos puntos geográficos


([N4] pzsteknics) #1

Hola.

Os indico cómo calcular con JavaScript la distancia entre dos puntos geográficos, pasándole sus coordenadas y sin usar el API de Google Maps. El script está basado en la formula de Heversine.


//Cálculo de distancia entre puntos geográficos
//Pasando sus coordenadas

var lat1 = theRoot.varToString(“LAT_OR”); //Latitud del punto de origen
var lon1 = theRoot.varToString(“LON_OR”); //Longitud del punto de origen
var lat2 = theRoot.varToString(“LAT_DES”); //Latitud del punto de destino
var lon2 = theRoot.varToString(“LON_DES”); //Longitud del punto de destino

Distancia = Dist(lat1, lon1, lat2, lon2); //Retorna numero en Km

function Dist(lat1, lon1, lat2, lon2)
{
rad = function(x) {return x*Math.PI/180;}

var R = 6378.137; //Radio de la tierra en km
var dLat = rad( lat2 - lat1 );
var dLong = rad( lon2 - lon1 );

var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(rad(lat1)) * Math.cos(rad(lat2)) * Math.sin(dLong/2) * Math.sin(dLong/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;

return d.toFixed(3); //Retorna tres decimales
}
theRoot.setVar(“DST”, Distancia);


Como veis, en las cuatro primeras líneas, es dónde le pasamos las coordenadas de origen y destino mediante variables Velneo. El resto es el cálculo matemático y en la última línea retornamos, a una variable Velneo, la distancia (en metros) entre ambos puntos geográficos.