2011-04-11 21 views
7

Estoy tratando de obtener las coordenadas Lng y lat de la API de Google Maps en el siguiente ejemplo http://jsbin.com/inepo3/7/edit. Espero una ventana emergente de 'éxito', pero sigue mostrando el menú emergente 'Error'. La solicitud de google maps da los comentarios JSON correctos (marcados por firebug).Obtener las coordenadas de la dirección de Google Maps API por ajax() solicitud

<script type="text/javascript"> 
    $().ready(function() { 

     $.fn.getCoordinates=function(address){ 

      $.ajax(
      { 
       type : "GET", 
       url: "http://maps.google.com/maps/api/geocode/json", 
       dataType: "jsonp", 
       data: { 
        address: address, 
        sensor: "true" 
       }, 
       success: function(data) { 
        set = data; 
        alert(set); 
       }, 
       error : function() { 
        alert("Error."); 
       } 
      }); 
     }; 

     $().getCoordinates("Amsterdam, Netherlands"); 
    }); 
</script> 

¿Alguien sabe cómo solucionar este problema?

Saludos, Guido Lemmens

EDIT

he encontrado una solución Beter mediante la API de JavaScript de Google Maps combinado en jQuery:

<script type="text/javascript"> 
    $().ready(function() { 
     var user1Location = "Amsterdam, Netherlands"; 
     var geocoder = new google.maps.Geocoder(); 
     //convert location into longitude and latitude 
     geocoder.geocode({ 
      address: user1Location 
     }, function(locResult) { 
      console.log(locResult); 
      var lat1 = locResult[0].geometry.location.lat(); 
      var lng1 = locResult[0].geometry.location.lng(); 
      $("#testDiv").html("latitude:" + lat1 + "<p>longitude:" + lng1 + "</p>"); 
     }); 
    }); 
</script> 
+0

qué versión de Google Map API? – kjy112

+0

No estoy seguro, supongo que v2 (¿se puede convertir la URL de mapas usados ​​a una versión, tal vez?) –

+0

estoy bastante seguro de que es V3 ahora mirándolo de nuevo. – kjy112

Respuesta

9

Google Map API V3 hace que sea más difícil para las bibliotecas externas para trabajar con JSONP. Aquí hay una publicación en el blog sobre esto.

JSONP and Google Maps API Geocoder Plus A Fix w/ jQuery


Una forma alternativa de conseguir geocodificación es utilizar el Google Map V3 API Geocoder Service. Aquí hay un ejemplo de que ayudé a una persona que estaba teniendo un problema similar al suyo a reemplazar su JSONP para usar el servicio de geocodificador de Google Map V3. Eche un vistazo a este JSFiddle Demo:

Esto es básicamente el núcleo. básicamente usamos Twitter para obtener la dirección del pío (Londres, Madrid IE o Georgia, etc.) y convertir la dirección real en LatLng usando Geocoder servicio de Google Map:

$.getJSON(
    url1, function(results) { // get the tweets 
     var res1 = results.results[0].text; 
     var user1name = results.results[0].from_user; 
     var user1Location = results.results[0].location; 

     // get the first tweet in the response and place it inside the div 
     $("#last-tweet1").html(res1 + "<p>from: " + user1name + " (" + user1Location + ")</p><p>"); 
     //convert location into longitude and latitude 
     geocoder.geocode({ 
      address: user1Location 
     }, function(locResult) { 
      console.log(locResult); 
      var lat1 = locResult[0].geometry.location.lat(); 
      var lng1 = locResult[0].geometry.location.lng(); 
      $("#testDiv").html("latitude:" + lat1 + "<p>longitude:" + lng1 + "</p>"); 
     }); 
    }); 
+1

Genial, acabo de resolver tu ejemplo y agregarlo a mi publicación original. Esto funciona perfecto! –

+0

muy útil, gracias! – montrealist

+0

obtener error entre dominios, ¿por qué? –

Cuestiones relacionadas