Google Maps Geocoder Пропустить? - PullRequest
       18

Google Maps Geocoder Пропустить?

0 голосов
/ 20 февраля 2019

У меня проблема с кодом, над которым я работаю.Я хочу, чтобы при нажатии кнопки «Отправить» он преобразовывал значение поля адреса в lat / long с помощью геокодера, а затем сохранял значения lat / long в скрытое поле «latLongField».Я также использую Places api для автоматического заполнения поля адреса для пользователей по мере их ввода.

Моя проблема в том, что по какой-то причине, когда моя функция onclick запускается, вызванная кнопкой отправки, она пропускает функцию геокода ... Я думаю, что это как-то связано с обратным вызовом в моих тегах, но яне могу понять, как это сделать.

Мой JavaScript:

    var addLong;
    var addLat;

    function initAutocomplete() {

        var input = document.getElementById('address');

        new google.maps.places.Autocomplete(input);

    }

    function addValue(){

        var address = document.getElementById('address').value;

        geocoder = new google.maps.Geocoder();

        geocoder.geocode( { 'address': address}, function(results, status) {
              if (status == google.maps.GeocoderStatus.OK) {
                addLat = results[0].geometry.location.lat()
                addLong = results[0].geometry.location.lng()
                map = new google.maps.Map(document.getElementById('map'), {
                center: {lat: addLat, lng: addLong},
                zoom: 18
            });
              } else {
              alert('Geocode was not successful for the following reason: ' + status);
              }
            });
        document.getElementById('latLongField').value = addLat + "," + addLong;
    }

Мой тег HTML:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBKoF52cTEZ00niUdjauGtA5UlW8&libraries=places&callback=initAutocomplete"></script>

Доступ к моим элементам HTML:

<input type="hidden" id="latLongField"value='hello'>
<button type="submit" class="btn btn-primary px-4" onclick="addValue()">Submit</button>
...