Почему лат и лон не загружаются в URL для вызова API? - PullRequest
0 голосов
/ 10 марта 2020

Мне нужно получить геолокацию и добавить долготу и долготу в URL для вызова API. Когда я делаю этот код, ничего не работает.

'' '

myFunction = () => {

    if (confirm("permission to get location?")){
        if (navigator.geolocation) {
            this.fetchWeatherData();

          } else { 
            x.innerHTML = "Geolocation is not supported by this browser.";
          }
    }
    else {
        txt = "no";
    }

}
fetchWeatherData = () => {
    navigator.geolocation.getCurrentPosition(function(position) {
        var lat = parseFloat(position.coords.latitude);
        var lon = parseFloat(position.coords.longitude);
        var positionInfo = "Your current position is (" + "Latitude: " + lat + ", " + "Longitude: " + lon + ")";
        alert(positionInfo);

    });
    let url = "http://api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + lon + "&appid=691dd666b7f05f7beb804e177900dbb5";

    $.ajax({
        url: url,
        dataType: "jsonp",
        success : this.parseResponse,
        error : function(req, err){ console.log('API call failed ' + err); }
    });
}

' '' lat и lon не работают в URL, но они работают в оповещении (информация о положении)

1 Ответ

0 голосов
/ 10 марта 2020

Вы вызываете функцию fetchWeatherData всякий раз, когда получаете данные от getCurrentGeolocation, но никогда не используете данные, возвращенные из getCurrentGeolocation. Сделайте это, он отправит данные в fetchWeatherData и загрузит ваши данные

...