Foros del Web » Programando para Internet » Javascript »

calculo de distancia entre dos puntos erroneo

Estas en el tema de calculo de distancia entre dos puntos erroneo en el foro de Javascript en Foros del Web. Buen dia compañeros del foro. estoy probando google maps api y en el momento de calcular la distancia desde mi casa hasta mi oficina me ...
  #1 (permalink)  
Antiguo 24/05/2018, 08:11
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 11 meses
Puntos: 2
calculo de distancia entre dos puntos erroneo

Buen dia compañeros del foro.
estoy probando google maps api y en el momento de calcular la distancia desde mi casa hasta mi oficina me da una distancia en metro de millones a sabiendas que realmente estoy a escasos metros.

el algoritmo es el siguiente:
Código Javascript:
Ver original
  1. if (navigator.geolocation) {
  2.          navigator.geolocation.getCurrentPosition(function(position) {
  3.             var pos = {
  4.               lat: position.coords.latitude,
  5.               lng: position.coords.longitude
  6.             };         
  7.             var coordenadas = [
  8.             {lat: 4.653758799999999, lng: -74.05518840000002}//ubicacion de mi casa
  9.             ];             
  10.             var polilinea = new google.maps.Polygon({path:coordenadas});
  11.             var path=polilinea.getPath();
  12.             path.push(google.maps.geometry.encoding.decodePath('calle71isur#27i-15,bogota,colombia')[1]);//decodePath devuelve un array
  13.             alert("la cantidad de metros desde mi masa hasta mi oficina es: "+google.maps.geometry.spherical.computeDistanceBetween(path.getAt(0), path.getAt(1)));
  14.             });
  15.             }

si ponen
Código Javascript:
Ver original
  1. alert(google.maps.geometry.encoding.decodePath('calle71isur#27i-15,bogota,colombia'));
se daran cuenta que devuelve aproximadamente 10 coordenadas diferentes para la misma direccion (mi oficina).
Pido que por favor me ayuden, no he encontrado la respuesta.

Última edición por dacroma; 24/05/2018 a las 08:18
  #2 (permalink)  
Antiguo 24/05/2018, 14:44
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: calculo de distancia entre dos puntos erroneo

Puedes usar la fórmula del haverseno.
Código:
<script>
function rad(x) {
  return x * Math.PI / 180;
}
function getDistance(p1, p2) {
  var R = 6378137; // radio de la tierra en metros
  var dLat = rad(p2.lat - p1.lat);
  var dLong = rad(p2.lng - p1.lng);
  var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
    Math.cos(rad(p1.lat)) * Math.cos(rad(p2.lat)) *
    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; // distancia en metros
}
var p1={'lat':'-34.637127','lng':'-58.4652139'};
var p2={'lat':'-34.6278491','lng':'-58.4842894'};
var dist=getDistance(p1, p2);
alert((dist/1000).toFixed(2)+' Km.');
</script>
  #3 (permalink)  
Antiguo 24/05/2018, 18:09
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 11 meses
Puntos: 2
Respuesta: calculo de distancia entre dos puntos erroneo

Muchas gracias panino5001, voy a hecharle cabeza.

Etiquetas: maps
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:24.