如何在 openweather API 中查找 7 天的天气预报?
How to find 7 days weather forecast in openweather API?
我正在尝试使用 openweather API 查找 7 天的天气预报,但是当我调用 openweather API 时,当前位置没有数据,谁能指导我找到正确的 API 以获取当前位置的天气预报。
API 目前已使用
1. api.openweathermap.org/data/2.5/forecast?q={city name}&appid={API key}
2. https://api.openweathermap.org/data/2.5/onecall?lat={lat}&lon={lon}&exclude={part}&appid={API key}
参考链接:
要求:https://api.openweathermap.org/data/2.5/forecast?q=India&appid={MY_API_ID}
响应:(仅添加了 40 天中的 2 天数据)
{
"cod": "200",
"message": 0,
"cnt": 40,
"list": [
{
"dt": 1600668000,
"main": {
"temp": 283.42,
"feels_like": 282.81,
"temp_min": 283.42,
"temp_max": 284.26,
"pressure": 1018,
"sea_level": 1018,
"grnd_level": 862,
"humidity": 84,
"temp_kf": -0.84
},
"weather": [
{
"id": 802,
"main": "Clouds",
"description": "scattered clouds",
"icon": "03d"
}
],
"clouds": {
"all": 32
},
"wind": {
"speed": 0.1,
"deg": 22
},
"visibility": 10000,
"pop": 0,
"sys": {
"pod": "d"
},
"dt_txt": "2020-09-21 06:00:00"
},
{
"dt": 1600722000,
"main": {
"temp": 283.34,
"feels_like": 282.29,
"temp_min": 283.34,
"temp_max": 283.34,
"pressure": 1016,
"sea_level": 1016,
"grnd_level": 861,
"humidity": 86,
"temp_kf": 0
},
"weather": [
{
"id": 500,
"main": "Rain",
"description": "light rain",
"icon": "10n"
}
],
"clouds": {
"all": 66
},
"wind": {
"speed": 0.82,
"deg": 149
},
"visibility": 823,
"pop": 0.35,
"rain": {
"3h": 0.18
},
"sys": {
"pod": "n"
},
"dt_txt": "2020-09-21 21:00:00"
}
],
"city": {
"id": 3168508,
"name": "Innichen",
"coord": {
"lat": 46.7406,
"lon": 12.2797
},
"country": "IT",
"population": 3107,
"timezone": 7200,
"sunrise": 1600664205,
"sunset": 1600708262
}
}
你有很多问题,如果你能缩小问题范围会很有帮助。但这是我尽我所能提供帮助的最佳方式:
对于 7 天的预报,您需要申请 7 天的预报。。
在您的请求示例中 1. api.openweathermap.org/data/2.5/forecast?q={city name}&appid={API key}
您还包含了一个 link that you used 用于 5 天的请求。 如果您想要 7 天,那就有问题了天。
如果您想要 5 天的预报,您在第一个示例中引用的 API 需要一个城市名称 并且(如果您想要包括一个国家/地区) 要求国家/地区名称在 ISO 3166 中 因此印度将是“IND”而不是 INDIA。
无论您想要 5 天还是 7 天,您都需要比印度更具体。
在 5 天的情况下,您将需要一个城市名称。对于孟买的 5 天预报,您可以使用您在第一个示例中尝试过的 API,如下所示:
"https://api.openweathermap.org/data/2.5/forecast?q=mumbai&appid={yourAPIKey}"
在7天的情况下,您将需要经纬度坐标。
对于孟买的 7 天预报,您可以使用您在第二个示例中尝试过的 API,如下所示:
//includes lat and long for mumbai
"https://api.openweathermap.org/data/2.5/onecall?lat=19.0760&lon=72.8777&appid={yourAPIkey}"
我希望这能回答你的问题。
对于 7 天的预测,您必须将经纬度和 api id 传递到 url
以下
"https://api.openweathermap.org/data/2.5/onecall?lat=${lat}&lon=${lon}&appid=${api}"" =13=]
要获取搜索城市的经纬度,您可以先创建一个 api 调用 url 下面,然后使用该数据传递给上面 url。
https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${api}
希望这对您有所帮助。一种尝试方法。
// 获取经纬度:
const getData = async () => {
let city = document.getElementById("cityName").value; //input from user.
let url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${api}`;
try {
let res = await fetch(url);
let data = await res.json();
let lat = data.coord.lat;
let lon = data.coord.lon;
getDatafor7days(lat, lon);
} catch (error) {
console.log(error);
}
};
// 传递经纬度以获得 7 天的预报:
const getDatafor7days = async (lat, lon) => {
let url = `https://api.openweathermap.org/data/2.5/onecall?lat=${lat}&lon=${lon}&appid=${api}`;
try {
let res = await fetch(url);
let data = await res.json();
console.log("data", data);
} catch (error) {
console.log(error);
}
};
我正在尝试使用 openweather API 查找 7 天的天气预报,但是当我调用 openweather API 时,当前位置没有数据,谁能指导我找到正确的 API 以获取当前位置的天气预报。
API 目前已使用
1. api.openweathermap.org/data/2.5/forecast?q={city name}&appid={API key}
2. https://api.openweathermap.org/data/2.5/onecall?lat={lat}&lon={lon}&exclude={part}&appid={API key}
参考链接:
要求:https://api.openweathermap.org/data/2.5/forecast?q=India&appid={MY_API_ID}
响应:(仅添加了 40 天中的 2 天数据)
{
"cod": "200",
"message": 0,
"cnt": 40,
"list": [
{
"dt": 1600668000,
"main": {
"temp": 283.42,
"feels_like": 282.81,
"temp_min": 283.42,
"temp_max": 284.26,
"pressure": 1018,
"sea_level": 1018,
"grnd_level": 862,
"humidity": 84,
"temp_kf": -0.84
},
"weather": [
{
"id": 802,
"main": "Clouds",
"description": "scattered clouds",
"icon": "03d"
}
],
"clouds": {
"all": 32
},
"wind": {
"speed": 0.1,
"deg": 22
},
"visibility": 10000,
"pop": 0,
"sys": {
"pod": "d"
},
"dt_txt": "2020-09-21 06:00:00"
},
{
"dt": 1600722000,
"main": {
"temp": 283.34,
"feels_like": 282.29,
"temp_min": 283.34,
"temp_max": 283.34,
"pressure": 1016,
"sea_level": 1016,
"grnd_level": 861,
"humidity": 86,
"temp_kf": 0
},
"weather": [
{
"id": 500,
"main": "Rain",
"description": "light rain",
"icon": "10n"
}
],
"clouds": {
"all": 66
},
"wind": {
"speed": 0.82,
"deg": 149
},
"visibility": 823,
"pop": 0.35,
"rain": {
"3h": 0.18
},
"sys": {
"pod": "n"
},
"dt_txt": "2020-09-21 21:00:00"
}
],
"city": {
"id": 3168508,
"name": "Innichen",
"coord": {
"lat": 46.7406,
"lon": 12.2797
},
"country": "IT",
"population": 3107,
"timezone": 7200,
"sunrise": 1600664205,
"sunset": 1600708262
}
}
你有很多问题,如果你能缩小问题范围会很有帮助。但这是我尽我所能提供帮助的最佳方式:
对于 7 天的预报,您需要申请 7 天的预报。。
在您的请求示例中 1. api.openweathermap.org/data/2.5/forecast?q={city name}&appid={API key}
您还包含了一个 link that you used 用于 5 天的请求。 如果您想要 7 天,那就有问题了天。
如果您想要 5 天的预报,您在第一个示例中引用的 API 需要一个城市名称 并且(如果您想要包括一个国家/地区) 要求国家/地区名称在 ISO 3166 中 因此印度将是“IND”而不是 INDIA。
无论您想要 5 天还是 7 天,您都需要比印度更具体。
在 5 天的情况下,您将需要一个城市名称。对于孟买的 5 天预报,您可以使用您在第一个示例中尝试过的 API,如下所示:
"https://api.openweathermap.org/data/2.5/forecast?q=mumbai&appid={yourAPIKey}"
在7天的情况下,您将需要经纬度坐标。
对于孟买的 7 天预报,您可以使用您在第二个示例中尝试过的 API,如下所示:
//includes lat and long for mumbai
"https://api.openweathermap.org/data/2.5/onecall?lat=19.0760&lon=72.8777&appid={yourAPIkey}"
我希望这能回答你的问题。
对于 7 天的预测,您必须将经纬度和 api id 传递到 url
以下"https://api.openweathermap.org/data/2.5/onecall?lat=${lat}&lon=${lon}&appid=${api}"" =13=]
要获取搜索城市的经纬度,您可以先创建一个 api 调用 url 下面,然后使用该数据传递给上面 url。 https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${api}
希望这对您有所帮助。一种尝试方法。
// 获取经纬度:
const getData = async () => {
let city = document.getElementById("cityName").value; //input from user.
let url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${api}`;
try {
let res = await fetch(url);
let data = await res.json();
let lat = data.coord.lat;
let lon = data.coord.lon;
getDatafor7days(lat, lon);
} catch (error) {
console.log(error);
}
};
// 传递经纬度以获得 7 天的预报:
const getDatafor7days = async (lat, lon) => {
let url = `https://api.openweathermap.org/data/2.5/onecall?lat=${lat}&lon=${lon}&appid=${api}`;
try {
let res = await fetch(url);
let data = await res.json();
console.log("data", data);
} catch (error) {
console.log(error);
}
};