2011-03-04 15 views
12

Estoy tratando de obtener el LatLng de google map geocode api. mi código está por debajo de los valores de dirección es "New York, NY"Cómo llamar al servicio google map geocode con jquery ajax

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

Pero ahora no recibo ningún valor en alerta.

Gracias por cualquier ayuda.

+1

dónde quieres llegar? Utilice Firebug (o equivalente) para la depuración. ¿Qué contiene la solicitud? –

+0

@Fokko Driesprong registró Firebug, obteniendo datos como vacíos y url como http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=NewYork%2C+NY y al pegar esta url en la dirección del navegador barra dando los resultados. :-) – rajakvk

Respuesta

13

Deberá ponerse en contacto con la API con respecto al rules.

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

Editar:

¿Qué tan tonto de mí, no debe estar en stackoverflow en la mañana! El problema es una solicitud entre dominios. Por razones de seguridad, esto no está permitido. Ver: How to make cross-domain AJAX calls to Google Maps API?

Utilice el propio Geocoding client de Google.

+0

gracias de nuevo. Intenté con el código anterior pero no tuve suerte. Por cierto, antes de la función agregué "éxito:" – rajakvk

+0

intente este eample http://jsfiddle.net/ipsjolly/FSU6r/ –

+0

Intenté esta solución, pero obtengo el error "Uncaught SyntaxError: identificador inesperado" para el parámetro de dirección en datos. ¿Alguien puede ayudarme a resolver esto por favor? –

0

o especifica dataType to jsonp?

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

Ésta es la forma en que lo hice. Parece que Geocoder está creando su propia devolución de llamada.

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

Si alguien está buscando ayuda sobre este tema, así es como lo he hecho. Tenga en cuenta que esto es una búsqueda inversa, sino una búsqueda directa debería funcionar de la misma manera:

`

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; 
     }); 
    }` 
8

no hay necesidad de hacer uso de jQuery, JavaScript de Google Maps API v3 ha de construir en sus propias funciones lo que hace que la API sea fácil de usar.

https://developers.google.com/maps/documentation/javascript/geocoding https://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 
     }); 
    } 
});