Google Maps JavaScript API с автозаполнением

#javascript #api #google-maps #geolocation

#javascript #API #google-карты #геолокация

Вопрос:

Мы используем Google API для получения адресов из ввода автозаполнения.

 <script src="https://maps.googleapis.com/maps/api/js?key=XXXXXamp;signed_in=trueamp;libraries=placesamp;callback=initAutocomplete" async defer></script>
  

Исходный код можно найти здесь:
https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform?hl=de

Теперь мне было интересно, могу ли я получить долготу и широту из этого запроса. Таким образом, мы можем получить доступ к карте Google и рассчитать расстояние от нашей начальной точки.

Комментарии:

1. да, это в ответе — это было бы position.geometry.location в примере — также, с широтой и долготой адреса, и при условии, что у вас есть то же самое для «начальной точки» — вам не нужна карта Google для вычисления расстояния по прямой — это просто математика

2. @Jaromanda X спасибо, оповещение (position.geometry.location); не имеет никакого значения. Должен ли я использовать другую функцию?

3. видите ли, вы опубликовали НУЛЕВОЙ код, поэтому я понятия не имею, куда вы поместили этот предупреждающий вызов, чтобы узнать, все ли вы сделали правильно

4. извините, снова просмотрел код в примере с картами Google, и это то, что place.geometry.location вы ищете — я удивлен, что вы не заметили никаких ошибок консоли инструментов разработчика и только сказали, что это «не имеет значения» — интересно, какая позиция даже в этот момент в коде, была быхотя это было не определено, поэтому вы получите исключение при попытке получить доступ к position.geometry, не говоря уже о position.geometry.location

5. @JaromandaX спасибо. Я понял это, используя alert(JSON.stringify(place)); в функции fillInAddress().

Ответ №1:

Итак, решение заключается в использовании

place.geometry.location.lat() для широты

place.geometry.location.lng() для longtidue

в функции fillInAddress() после объявления переменной place .

Спасибо @JaromandaX