Bueno estoy trabajando en un proyecto donde necesito obtener distancias de dos puntos.
tengo el siguiente codigo:
function codeAddress() {
if (document.getElementById('alturac').value != '' && document.getElementById('callec').value !='' && document.getElementById('cicono').value !="sincategoria") {
altura = document.getElementById('alturac').value;
address = document.getElementById('callec').value + ' ' + altura + cañada;
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
crearMarcador(results[0].geometry.location);
var lat2 = -32.82318960;
var lon2 = -61.40029310;
Dist(results[0].geometry.location.lat(),
results[0].geometry.location.lng(),lat2,lon2);
} else {
alert('El Geocode no se ha ejecutado correctamente por el siguiente motivo: ' + status);
}
});
} else {alert("Debe completar todos los campos");}
}
en donde defino las variables lat2,lon2,lat,lng para utilizarlos dentro de otra funcion llamada Dist
Funcion Dist
Distancia = Dist(lat, lng, lat2, lon2); //Retorna numero en Km
alert(Distancia);
function Dist(lat, lng, lat2, lon2)
{
rad = function(x) {return x*Math.PI/180;}
var R = 6378.137; //Radio de la tierra en km
var dLat = rad( lat2 - lat );
var dLong = rad( lon2 - lng );
var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(rad(lat)) * 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);
}
el problema es que el alert que da distancia no se me ejecuta. e probado ver si las funcion me toma bien las variable colocando un alert dentro de la funcion dist, y me las toma a la perfeccion, pero no me da el resultado del alert
PD: si yo pongo como globales las variables lat2,lon2,lat,lng anda a la perfeccion, haci q asumo q el poblema debe estar en llamar las variables de una funcion a otra, pero no logro ver donde
Desde ya muchas gracias solo por intentar
Saludos