Почему мое обратное геокодирование не работает и не отображается? - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть карта поиска рядом, при каждом открытии этой страницы карты она возвращает текущую позицию, теперь, когда я получаю текущую позицию по координатам, я хочу преобразовать ее в геокодирование в имя адреса, проблема в том, что я изменилсямой код из этого источника: https://developers -dot-devsite-v2-prod.appspot.com / карты / документация / javascript / examples / geocoding-reverse

с

<script>
function getPosition() {
  navigator.geolocation.getCurrentPosition(position => {
    currentLatLon = [position.coords.latitude, position.coords.longitude];
    infowindow = new google.maps.InfoWindow();
    map = new google.maps.Map(
      document.getElementById('map'), {
        center: new google.maps.LatLng(...currentLatLon),
        zoom: 20
      });
      var geocoder = new google.maps.Geocoder();       
    service = new google.maps.places.PlacesService(map);
    document.getElementById("curr").innerHTML=currentLatLon;
    document.getElementById("address").value=currentLatLon;
    geocodeLatLng(geocoder,map,infowindow);
  });
}

 function geocodeLatLng(geocoder, map, infowindow) {
        var input = document.getElementById('curr').value;
        var latlngStr = input.split(',');
        var latlng = {lat: parseFloat(latlngStr[0]), lng: parseFloat(latlngStr[1])};
        geocoder.geocode({'location': latlng}, function(results, status) {
          if (status === 'OK') {
            if (results[0]) {
              map.setZoom(11);
              var marker = new google.maps.Marker({
                position: latlng,
                map: map
              });
              infowindow.setContent(results[0].formatted_address);
              infowindow.open(map, marker);
            } else {
              window.alert('No results found');
            }
          } else {
            window.alert('Geocoder failed due to: ' + status);
          }
        });
      }
    </script>

это должно вернуть название места на карте, которое похоже на исходный код, который я скопировал сверху https://developers -dot-devsite-v2-prod.appspot.com / maps / Documentation / javascript / examples/ geocoding-reverse , что может быть не так в моей модификации?У меня ошибка в консоли при запуске моего измененного кода, ошибка в консоли

Вот мой полный код без ключа API: https://pastebin.com/BhEqRsq0

1 Ответ

0 голосов
/ 26 сентября 2019

Вы устанавливаете координаты lat / lng для <p> элемента *1001*, а не для его (неподдерживаемого) value, поэтому он возвращает неопределенное значение:

document.getElementById("curr").innerHTML = currentLatLon;

Поэтому измените этот код:

var input = document.getElementById('curr').value;

на следующее:

var input = document.getElementById('curr').innerHTML;

Я только что запустил ваше веб-приложение, и обратное геокодирование прекрасно работает после вышеуказанного исправления.Надеюсь, это поможет!

...