2012-06-09 3 views
21

Я использую функцию автозаполнения карт Google для геокодирования. Кажется, он возвращает много данных, но не lat/lng. Есть ли способ получить эту информацию? Я бы хотел передать его обратно в мое бэкэнд-приложение для дальнейшей обработки.Google Maps Autocomplete: как получить lat/lng?

+0

возможный дубликат [LatLngBounds - как получить SW и NE точек] (http://stackoverflow.com/questions/10957559/latlngbounds-how-to- get-sw-and-ne-points) –

+0

Вы просто увольняете много вопросов (429 вопросов против 15 ответов) без должного описания того, что вы хотите сделать или того, что вы пытались решить самостоятельно. Это добавляет шум на этот сайт. –

+0

Это не дубликаты. Один имеет дело с попыткой определить прямоугольник, и этот вопрос касается ответа, возвращаемого API. – StackOverflowNewbie

ответ

22

ОК, я не знаком с местами или автозаполнениями. Но, похоже, что вы ищете

autocomplete.getPlace().geometry.location 

Для демонстрации я взял this example и добавил строку выше, чтобы создать this JSFiddle где вы можете ввести название места, и когда он выбран, InfoWindow с LatLng создается.

В частности, он прослушивает выбор пользователя, а затем обновляет информационное окно.

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

Этот подход не приносит долготы и лат. – neoplomero

+3

@neoplomero на самом деле это так, с 'autocomplete.getPlace(). Geometry.location' вы можете получить доступ к' autocomplete.getPlace(). Geometry.location.lat() 'и' autocomplete.getPlace(). Geometry.location.lng() ' – guival

38

Существуют методы, называемые lat() и lng(), которые существуют на прототипе объекта геометрии. Таким образом, чтобы получить значения, просто используйте следующую команду:

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

Помог мне много спасибо. – CENT1PEDE

+0

Отлично, спасибо. – neoplomero

+0

Использует ли это запросы в квоте? – dtgq

Смежные вопросы