【发布时间】:2020-04-07 09:46:19
【问题描述】:
我正在为一个项目构建这个天气应用程序,api 以度数返回风向,我想将其转换为文本 Nort、norteast 等。
这是我使用的代码
const api = {
key: "",
base: "https://api.openweathermap.org/data/2.5/"
}
const searchbox = document.querySelector('.search-box');
searchbox.addEventListener('keypress', setQuery);
function setQuery(evt) {
if (evt.keyCode == 13) {
getResults(searchbox.value);
}
}
function getResults (query) {
fetch(`${api.base}weather?q=${query}&units=metric&APPID=${api.key}`)
.then(weather => {
return weather.json();
}).then(displayResults);
}
function displayResults (weather) {
console.log(weather);
let city = document.querySelector('.location .city');
city.innerText = `${weather.name}, ${weather.sys.country}`;
let now = new Date();
let date = document.querySelector('.location .date');
date.innerText = dateBuilder(now);
let temp = document.querySelector('.current .temp');
temp.innerHTML = `${Math.round(weather.main.temp)}<span>°c</span>`;
let weather_el = document.querySelector('.current .weather');
weather_el.innerText = weather.weather[0].main;
let hilow = document.querySelector('.hi-low');
hilow.innerText = `${Math.round(weather.main.temp_min)}°c / ${Math.round(weather.main.temp_max)}°c`;
let pressure = document.querySelector('.current .pressure');
pressure.innerHTML =`${weather.main.pressure}<span> </span><span>PSi</span>`;
let wind = document.querySelector('.current .wind');
wind.innerHTML= `${weather.wind.speed} m/s`;
let deg = document.querySelector('.current .deg')
deg.innerText=`${weather.wind.deg}`;
}
function dateBuilder (d) {
let months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
let days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
let day = days[d.getDay()];
let date = d.getDate();
let month = months[d.getMonth()];
let year = d.getFullYear();
return `${day} ${date} ${month} ${year}`;
}
这条线返回度数
let deg = document.querySelector('.current .deg')
deg.innerText=`${weather.wind.deg}`;
有没有简单的转换方法?
【问题讨论】:
-
以同样的方式将日期和月份转换为文本。
-
您要近似多少罗盘点? 4 (N,E,S,W), 8 (N, NE, E, SE, ...), 更多?
-
8分就够了
标签: javascript