web-dev-qa-db-fra.com

Comment appeler le service de géocodage de Google Map avec jquery ajax

J'essaye d'obtenir le LatLng de l'API de géocodage de google map. mon code est ci-dessous avec les valeurs d'adresse est "New York, NY"

$.ajax({
    url: 'http://maps.googleapis.com/maps/api/geocode/json',
    data: {
        sensor: false,
        address: address
    },
    success: function (data) {
        alert(data)
    }
});

Mais je n'obtiens aucune valeur en alerte.

Merci pour toute aide.

14
rajakvk

Vous devrez contacter l'API concernant les règles .

$.getJSON( {
    url  : 'https://maps.googleapis.com/maps/api/geocode/json',
    data : {
        sensor  : false,
        address : address
    },
    success : function( data, textStatus ) {
        console.log( textStatus, data );
    }
} );

Modifier:

Comme je suis stupide, je ne devrais pas être sur stackoverflow le matin! Le problème est une requête interdomaine. Pour des raisons de sécurité, cela n'est pas autorisé. Voir: Comment effectuer des appels interdomaines AJAX appels à l'API Google Maps?

Veuillez utiliser le propre client de géocodage .

14
Fokko Driesprong

il n'est pas nécessaire d'utiliser jquery, l'API javascript v3 de Google maps a intégré ses propres fonctions, ce qui rend l'API facile à utiliser.

https://developers.google.com/maps/documentation/javascript/geocodinghttps://developers.google.com/maps/documentation/geocoding/intro

var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
        });
    }
});
9
Melvin

Si quelqu'un cherche de l'aide sur ce sujet, voici comment je l'ai fait. Notez qu'il s'agit d'une recherche inversée, mais une recherche directe devrait fonctionner de la même manière:

"

    function getLocation() {
var latdegrees=40.2298;
var londegrees=-41.88754;
     var url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + latdegrees + "," + londegrees + "YOUR API KEY";
    $.getJSON(url,function (data, textStatus) {
           var streetaddress=data.results[0].formatted_address;
          return streetaddress;
      });
     }`
3
user2534532

Le service Web de géocodage V3 ne prend pas en charge les requêtes JSONP, mais il est toujours disponible dans V2

Voir: http://blog.futtta.be/2010/04/09/no-more-jsonp-for-google-geocoding-webservice/

1
Brankodd

Voilà comment je l'ai fait. Geocoder semble créer son propre rappel.

geo.geocode({ 'address': myaddress }, function(data, status) {
    if (status == google.maps.GeocoderStatus.OK) { 
        var myylocation = data[0].geometry.location;
        lat = myylocation.lat();
        lng = myylocation.lng();
    }
});
1
HelpNeeder