# Calcular distancia entre dos puntos geográficos

**URL:** <https://foros.velneo.com/t/calcular-distancia-entre-dos-puntos-geograficos/9503>\
**Category:** Compartir código fuente y ejemplos\
**Created:** [19 Junio, 2017 07:48 UTC](https://foros.velneo.com/t/calcular-distancia-entre-dos-puntos-geograficos/9503 "2017-06-19T07:48:41Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![pzsteknics](https://avatars.discourse-cdn.com/v4/letter/p/e19adc/32.png) [@pzsteknics](https://foros.velneo.com/u/pzsteknics)\
**Post date:** [19 Junio, 2017 07:48 UTC](https://foros.velneo.com/t/calcular-distancia-entre-dos-puntos-geograficos/9503/1 "2017-06-19T07:48:41Z")

</div>

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](https://es.wikipedia.org/wiki/F%C3%B3rmula_del_haversine).

* * *

//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.
