当前位置: 首页 > 知识库问答 >
问题:

如何在openweather API中查找7天天气预报?

哈宪
2023-03-14

我正在尝试使用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}

参考链接:

  1. https://openweathermap.org/forecast5
  2. https://openweathermap.org/api/one-call-api

请求:<代码>https://api.openweathermap.org/data/2.5/forecast?q=India

{
    "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
    }
}

共有2个答案

陈坚
2023-03-14

对于7天的预测,您必须将lat long和api id传递到以下url

"https://api.openweathermap.org/data/2.5/onecall?lat=${lat}

要获得搜索城市的lat长度,您可以先创建一个api调用到下面的url,然后使用该数据传递到上面的url。https://api.openweathermap.org/data/2.5/weather?q=${city}

希望这对你有帮助。这是一种尝试的方法。

//要使lat变长:

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);
    }
  };
田博易
2023-03-14

你有很多问题,如果你能缩小范围会很有帮助。但这是我尽我所能提供帮助的最好方法:

对于 7 天天气预报,您需要请求 7 天预报。

在请求< code>1的示例中。api.openweathermap.org/data/2.5/forecast?q={city名字}

如果您想要一个5天的预测,您在第一个示例中引用的API需要一个城市名称,并且(如果您想包括一个国家),它要求国家名称在ISO 3166中,因此印度将是“IND”,而不是印度。

无论你想要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}"

     

我希望这回答了你的问题。

 类似资料:
  • 利用json解析返回天气信息。 [Code4App.com]

  • 本文向大家介绍PHP实现采集中国天气网未来7天天气,包括了PHP实现采集中国天气网未来7天天气的使用技巧和注意事项,需要的朋友参考一下 前言 我们在写一个Web程序的时候,总会想着把自己的网站更美观一些,功能能更多一些,有时候写一些小的工具或者加上小的插件会让我们的站点更加完善。比如万年历功能,比如我们现在要讲的天气预报功能。 当然我们没法利用专业的卫星接受数据,所以我们的天气数据来自现有的天气预

  • 这是一个开源的、基于jQuery 函数库的 JavaScript 天气预报脚本插件。 代码语法完全符合W3C网页标准,完全兼容各种主流浏览器。 本插件主要用于天气预报的展示。 jQuery weather v3.0.0( 2013-03-01 ) + 此版本开放源代码,允许二次修改 + 此版本改为纯Javascript版本,不再依赖于PHP. + 支持全世界所有城市(以前版本仅支持中国城市) +

  • 本文向大家介绍PHP调用全国天气预报数据接口查询天气示例,包括了PHP调用全国天气预报数据接口查询天气示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP调用全国天气预报数据接口查询天气。分享给大家供大家参考,具体如下: 基于PHP的聚合数据全国天气预报API服务请求的代码样例 本代码示例是基于PHP的聚合数据全国天气预报API服务请求的代码样例,使用前你需要: ①:通过https:

  • 你好:)我正在写一个电报机器人,显示今天和明天的天气。作为我正在使用的数据openweathermap.org. 现在,我使用了getTodaysWeather方法从JSON中获取有关Java对象的信息http://www.jsonschema2pojo.org并写道: 现在,我需要编写一个方法,从JSON数据中获取明天的天气数据http://api.openweathermap.org/data

  • 抬手即可在天气手表表盘中查看当天的每小时预报以及明天的 3 小时预报和后天的 6 小时预报。提供的其他天气信息包括风速、风向、湿度和降水概率。 只能在天气手表表盘中查看天气信息。在时间视图中,向左或者向右滑动以找到天气信息。 要使用天气功能,您需要在手机上安装 Flow 应用程序并与手表配对。您还需要开启定位服务 (iOS) 或定位设置 (Android) 才能获取天气信息。 今日预报 预报位置