2012-06-09 18 views
21

Używam funkcji autouzupełniania Map Google do geokodowania. Wydaje się, że zwraca wiele danych, ale nie ma wartości lat/lng. Czy istnieje sposób, aby uzyskać te informacje? Chciałbym przekazać to z powrotem do mojego backend aplikacji do dalszego przetwarzania.Google Maps Autouzupełnianie: jak uzyskać lat/lng?

+0

możliwy duplikat [LatLngBounds - jak zdobyć SW i NE punktów] (http://stackoverflow.com/questions/10957559/latlngbounds-how-to- get-sw-and-ne-points) –

+0

Odpowiadasz tylko na wiele pytań (429 pytań w porównaniu z 15 odpowiedziami) bez odpowiedniego opisania tego, co chcesz zrobić lub co sam próbowałeś rozwiązać. Dodaje hałasu do tej strony. –

+0

Nie są one duplikatami. Jedna zajmuje się próbą określenia prostokąta, a ta zajmuje się odpowiedzią, którą zwraca API. – StackOverflowNewbie

Odpowiedz

22

OK, nie znam miejsc ani autouzupełniania. Ale wygląda na to, czego szukasz, jest

autocomplete.getPlace().geometry.location 

Aby zademonstrować Wziąłem this example i dodaje linię powyżej stworzyć this JSFiddle gdzie można wprowadzić nazwę miejsca i gdy jest zaznaczone, tworzony jest infowindow o długość i szerokość geograficzną.

W szczególności słucha wyboru użytkownika, a następnie odświeża inforamcję.

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

To podejście nie przynosi długich i lat. – neoplomero

+3

@neoplomero faktycznie to robi, mając 'autocomplete.getPlace(). Geometry.location' można uzyskać dostęp do' autocomplete.getPlace(). Geometry.location.lat() 'i' autocomplete.getPlace(). Geometry.location.lng() ' – guival

38

Istnieją metody zwane lat() i lng(), które istnieją w prototypie obiektu geometrii. Tak aby uzyskać wartości, wystarczy kliknąć na poniższy:

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

Pomógł mi bardzo dziękuję. – CENT1PEDE

+0

Doskonale, dzięki. – neoplomero

+0

Czy to powoduje wykorzystanie żądań w ramach limitu? – dtgq

Powiązane problemy