Foros del Web » Programando para Internet » Javascript »

Obtener coordenadas de google

Estas en el tema de Obtener coordenadas de google en el foro de Javascript en Foros del Web. Buenos días, estoy usando esta función para conseguir las coordenadas a partir de una dirección: Código HTML: <script> //matriz = get_coordenadas("Madrid, ...."); alert(get_coordenadas("Madrid, ....")); function ...
  #1 (permalink)  
Antiguo 30/10/2013, 10:10
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 16 años, 11 meses
Puntos: 0
Obtener coordenadas de google

Buenos días,

estoy usando esta función para conseguir las coordenadas a partir de una dirección:


Código HTML:
<script>

//matriz = get_coordenadas("Madrid, ....");
alert(get_coordenadas("Madrid, ...."));



function get_coordenadas(direccion){
  
  geocoder = new google.maps.Geocoder();

  matriz_coordenadas = new Array(2);

  geocoder.geocode({'address': direccion}, 
    function(results, status){ 
      if(status == google.maps.GeocoderStatus.OK){
        matriz_coordenadas[0] = results[0].geometry.location.lat();
        matriz_coordenadas[1] = results[0].geometry.location.lng();

        alert("latitud:"+results[0].geometry.location.lat());

        return results[0].geometry.location.lat();
      }
      else{
        matriz_coordenadas[0] = "0.000000";
        matriz_coordenadas[1] = "0.000000";
      }
    }
  ); 

  //return matriz_coordenadas;

}

</script> 
El problema que cuando hace el return me da "undefined" y luego se muestra el alert("latitud:"+results[0].geometry.location.lat()); con el valor correcto.

Creo que es porque no le da tiempo.

Como podría solucionarlo para que me devuelva las dos coordenadas?

Gracias, saludos
  #2 (permalink)  
Antiguo 31/10/2013, 05:08
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtener coordenadas de google

Hola xinxan22:

Evidentemente que en el primer alert alert(get_coordenadas("Madrid, ....")); no está definido y para el segundo toma el valor de get_coordenadas("Madrid, ....");.

Prueba a hacerlo así (y en el else analiza la causa (status) por si la dirección (matriz) no existe o no la entiende Google:
Código Javascript:
Ver original
  1. var geocoder;
  2. matriz = "Madrid";
  3. alert(matriz);
  4. get_coordenadas(matriz);
  5. function get_coordenadas(matriz){  
  6.   geocoder = new google.maps.Geocoder();
  7.   matriz_coordenadas = new Array(2);
  8.   geocoder.geocode({'address': matriz},
  9.     function(results, status){
  10.       if(status == google.maps.GeocoderStatus.OK){
  11.         matriz_coordenadas[0] = results[0].geometry.location.lat();
  12.         matriz_coordenadas[1] = results[0].geometry.location.lng();
  13.         alert("latitud:"+results[0].geometry.location.lat());
  14.         return results[0].geometry.location.lat();
  15.       }
  16.       else {
  17.       alert('Geocode no tuvo éxito por la siguiente razón: ' + status);
  18.       }
  19.     }
  20.   );
  21.   //return matriz_coordenadas;
  22. }

Inicialmente aparecerá Madrid y después su latitud correspondiendo a los dos alert (o la causa si google.maps.GeocoderStatus no es OK).

Etiquetas: coordenadas, google
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 08:20.