Получить LatLng события place_changed - PullRequest
0 голосов
/ 08 июня 2018

Я использую поле автозаполнения для поиска адресов и хочу получить координаты, связанные с этим адресом, когда срабатывает событие place_changed, но, очевидно, я не могу получить объект LatLng события:

function initMap() {
  var map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 0,lng: 0},
    zoom: 5
  });

  let input = document.getElementById('input');
  let autocomplete = new google.maps.places.Autocomplete(input,{types: ['geocode']});
  google.maps.event.addListener(autocomplete, 'place_changed', function(event) {
    map.panTo(event.latLng);
  });
}
<script async defer src="https://maps.googleapis.com/maps/api/js?key=MY_KEY&callback=initMap&libraries=places"></script>

<div id="map" style="height: 100%;">Map here</div>

<label for="input">Search address:</label>
<input type="text" id="input">

TypeError: событие не определено

Я знаю, что это поле в первую очередь для автозаполнения, но оно также позволяетгеокодирования?Если это не так, как лучше всего извлечь объект LatLng, связанный с записанным адресом?

Спасибо за помощь.

1 Ответ

0 голосов
/ 08 июня 2018

Вам не нужно событие, вы должны использовать объект place.geometry.location того места, которое вы нашли.Ваш слушатель будет выглядеть так:

google.maps.event.addListener(autocomplete, 'place_changed', function() {
    let place = this.getPlace();
    let pos = place.geometry.location;
    map.panTo(pos);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...