2011-04-11 3 views
7

J'essaie d'obtenir les coordonnées lng et lat de l'API Google Maps par l'exemple suivant http://jsbin.com/inepo3/7/edit. Je m'attends à un popup "succès", mais il continue à afficher le popup "Erreur". La requête google maps donne le bon feedback json (vérifié par firebug).Obtenir les coordonnées de Google Maps API par ajax() request

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

Est-ce que quelqu'un sait comment résoudre ce problème?

Cordialement, Guido Lemmens

EDIT

J'ai trouvé une solution Béther en utilisant Google Maps API Javascript combinée 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

version de carte google api? – kjy112

+0

Je ne suis pas shure, je suppose que v2 (pouvez-vous convertir les cartes utilisées URL à une version peut-être?) –

+0

Je suis assez sûr que c'est V3 maintenant en regardant à nouveau. – kjy112

Répondre

9

API Google Map V3 rend plus difficile pour les bibliothèques externes travailler avec JSONP. Voici un article de blog à ce sujet.

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


Une autre façon d'obtenir géocodage est d'utiliser le Google Map V3 API Geocoder Service. Voici un exemple que j'ai aidé une personne qui avait un problème similaire à vous de remplacer son JSONP pour utiliser Google Map V3 Geocoder Service. Jetez un oeil à ce JSFiddle Demo:

Ceci est fondamentalement le noyau. Nous utilisons essentiellement twitter pour obtenir l'adresse de tweets (IE Londres, Madrid ou de la Géorgie, etc.) Et convertir l'adresse réelle en utilisant LatLng service de géocodage 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

Cool, je viens d'élaborer votre exemple et l'ajouter à mon message original. Cela fonctionne parfait! –

+0

très utile, merci! – montrealist

+0

obtenir erreur crossdomain, pourquoi? –

Questions connexes