2012-06-09 9 views
21

Estoy usando la función de autocompletar de Google Maps para geocodificar. Parece devolver una gran cantidad de datos, pero no el lat/lng. ¿Hay alguna manera de obtener esta información? Me gustaría devolverlo a mi aplicación backend para su posterior procesamiento.Google Maps Autocompletar: cómo obtener lat/lng?

+0

posible duplicado de [LatLngBounds - cómo conseguir SW y NE puntos] (http://stackoverflow.com/questions/10957559/latlngbounds-how-to- get-sw-and-ne-points) –

+0

Simplemente está generando muchas preguntas (429 preguntas frente a 15 respuestas) sin describir adecuadamente lo que quiere hacer o lo que ha tratado de resolver usted mismo. Agrega ruido a este sitio web. –

+0

No son duplicados. Uno trata de tratar de determinar un rectángulo y este trata de la respuesta que devuelve la API. – StackOverflowNewbie

Respuesta

22

OK, no estoy familiarizado con Places o Autocomplete. Pero parece que lo que busca es

autocomplete.getPlace().geometry.location 

Para demostrar Tomé this example y añadí la línea anterior para crear this JSFiddle donde puede introducir el nombre del lugar y cuando se ha seleccionado, se crea una ventana de información con el LatLng.

En particular, escucha la selección del usuario y luego actualiza la ventana de información.

google.maps.event.addListener(autocomplete, 'place_changed', function() { 
     infowindow.close(); 
     var place = autocomplete.getPlace(); 
     ... 
     infowindow.setContent('<div><strong>' + place.name + 
     '</strong><br>' + address + "<br>" + place.geometry.location); 
+0

Este enfoque no ofrece long y lat. – neoplomero

+3

@neoplomero en realidad lo hace, teniendo 'autocomplete.getPlace(). Geometry.location' puede acceder a' autocomplete.getPlace(). Geometry.location.lat() 'y' autocomplete.getPlace(). Geometry.location.lng() ' – guival

38

hay métodos llamados lat() y lng() que existe en prototipo del objeto geometría. Así que para obtener los valores, sólo tiene que utilizar el siguiente:

var place = autocomplete.getPlace(); 

var lat = place.geometry.location.lat(), 
    lng = place.geometry.location.lng(); 

// Then do whatever you want with them 

console.log(lat); 
console.log(lng); 

console.warn('Warning: I didn\'t test this code!'); 
+0

me ayudó mucho gracias. – CENT1PEDE

+0

Perfecto, gracias. – neoplomero

+0

¿Esto agota las solicitudes en la cuota? – dtgq

Cuestiones relacionadas