Я использую URL-адрес API и удаляю переменные и вставляю в действительности значения LAT и LONG в браузере, и он работает. Но когда он используется в коде с переменными LAT и LONG, он не работает.OpenWeatherMapAPI Geolocation через LAT LONG не работает или не печатается
Я называю существующие вопросы here и here
Я использую же, если не идентичен синтаксис успешно тянуть и распечатать LAT и LONG значения, а затем хранить переменные. Я вставляю переменные в URL-адрес API, но не печатает. Я не знаю почему.
Спасибо!
Это мой HTML
<html>
<head>
<meta charset="UTF-8">
<title>Today's Weather | Malvin</title>
</head>
<body>
<p id="geoLoc"></p>
<p id="currTemp"></p>
</body>
</html>
И это мой JS/JQuery
//geolocation via freecodecamp exercise
$(document).ready(function(){
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(position){
$("#geoLoc").html("latitude: " + position.coords.latitude + "<br>longitude: " + position.coords.longitude);
});
}
//jquery current weather via openweathermapp
var lat = position.coords.latitude;
var long = position.coords.longitude;
var weatherURL = "http://api.openweathermap.org/data/2.5/weather?lat="+lat+"&lon="+long+"&APPID=********f4144190680fc96bd357451d";
$.getJSON(weatherURL, function(data)
{
$('#currTemp').html("current temp: " + data.main.temp);
});
});
Thanks Функция обратного вызова не требуется для асинхронного вызова, т.е. .getJSON? Что такое синхронная альтернатива? Я добавил ваш фрагмент с функцией обратного вызова .done, но он все равно не возвращает значение. Сколько времени требуется для возврата данных из функции обратного вызова .done? – Stomper
.done - ваш обратный вызов. Синхронный выбор не является хорошим выбором, поскольку пользовательский интерфейс будет заблокирован/не реагировать. Но, так как вы просили синхронной альтернативы, я обеспечиваю его здесь $ .ajax ({ типа: "GET", URL: "some_url", асинхр: ложные }); Настройка «асинхронный» на false делает синхронный вызов AJAX. Можете ли вы поделиться ссылкой на код? Я рад помочь вам отладить –
Кроме того, почему вы устанавливаете свои lat и длинные переменные за пределами «if»? Я предлагаю вам объявить переменные перед условием «if» и установить переменные внутри условия. Имейте случай else, чтобы сообщить пользователю, если геолокация не поддерживается пользователем. –