2012-06-09 14 views
21

Sto utilizzando la funzione di completamento automatico di Google Maps per il geocoding. Sembra che restituisca molti dati, ma non il lat/lng. C'è un modo per ottenere queste informazioni? Vorrei passare di nuovo alla mia applicazione di back-end per un'ulteriore elaborazione.Completamento di Google Maps: come ottenere lat/lng?

+0

possibile duplicato di [LatLngBounds - come ottenere SW e punti NE] (http://stackoverflow.com/questions/10957559/latlngbounds-how-to- get-sw-and-ne-points) –

+0

Stai sparando un sacco di domande (429 domande vs 15 risposte) senza descrivere correttamente quello che vuoi fare o quello che hai provato a risolvere da solo. Aggiunge rumore a questo sito. –

+0

Non sono duplicati. Si tratta di provare a determinare un rettangolo e questo si occupa della risposta restituita dall'API. – StackOverflowNewbie

risposta

22

OK, non ho familiarità con Luoghi o completamento automatico. Ma sembra che ciò che si sta cercando è

autocomplete.getPlace().geometry.location 

Per dimostrare ho preso this example e ha aggiunto la linea di cui sopra per creare this JSFiddle cui è possibile inserire il nome della località e quando è selezionata, viene creato un infowindow con il LatLng.

In particolare, ascolta la selezione dell'utente, quindi aggiorna la finestra in basso.

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

Questo approccio non porta long e lat. – neoplomero

+3

@neoplomero effettivamente, avendo 'autocomplete.getPlace(). Geometry.location' puoi accedere a' autocomplete.getPlace(). Geometry.location.lat() 'e' autocomplete.getPlace(). Geometry.location.lng() ' – guival

38

Esistono metodi chiamati lat() e lng() che esistono sul prototipo dell'oggetto della geometria. Quindi, per ottenere i valori, basta utilizzare il seguente:

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

Mi ha aiutato molto grazie. – CENT1PEDE

+0

Perfetto, grazie. – neoplomero

+0

Questo consuma richieste nella quota? – dtgq

Problemi correlati