我知道"但它适用于我的电脑"是我不应该说的事情之一,但我们在这里。
我有一个小应用程序可以获取您的位置,获取您的天气,然后为您提供音乐播放列表。
在本地使用这些文件,您可以使用地理定位或按名称搜索任何位置。
在我部署的S3版本上,搜索任何位置只会显示您的地理位置结果。因此输入和搜索表单不起作用。
以下是代码:
输入位置:
$("#input-location").click(function(event){
event.preventDefault();
$('#mix-display').show();
$('#skipButton').show();
getWeatherWithUserInput()
.then(function(response) {
weatherCode = response;
showMix(weatherCode);
})
});
获取地理位置的位置:
$('#get-location').click(function(event){
event.preventDefault();
$('#mix-display').show();
$('#skipButton').show();
getWeatherWithGeo()
.then(function(response) {
weatherCode = response;
showMix(weatherCode);
})
});
以下是两个天气功能(我知道这里有很多愚蠢的代码重复,我最终会解决这个问题!):
function getWeatherWithGeo() {
return new Promise(function(resolve,reject) {
getGeoLocationGoogle()
.then(function(response) {
var lat = response.location.lat;
var lon = response.location.lng;
var weatherLLQueryURL = "http://api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + lon + "&appid=" + WeatherAPIKey;
$.ajax({
url: weatherLLQueryURL,
method: "GET"
}).done(function(response) {
$(".wind").html("<h2>" + response.name + ": </h2>");
var f_temp = 9/5*(response.main.temp-273)+32;
$(".temp").html("<h2>" + Math.floor(f_temp) + "℉</h2>");
resolve(response.weather[0].id);
});
})
})
}
从输入中获取天气:
function getWeatherWithUserInput() {
return new Promise(function(resolve, reject) {
var location = $("#location").val().trim();
var weatherCSQueryURL = "http://api.openweathermap.org/data/2.5/weather?q=" + location + "&appid=" + WeatherAPIKey;
$.ajax({
url: weatherCSQueryURL,
method: "GET"
}).done(function(response) {
$(".wind").html("<h2>" + response.name + ": </h2>");
var f_temp = 9/5*(response.main.temp-273)+32;
$(".temp").html("<h2>" + Math.floor(f_temp) + "℉</h2>");
resolve(response.weather[0].id);
});
});
};
完整代码在这里:https://github.com/nicktamburro/YouAreListeningToWeather