全国4000+个市县区和海外15万个城市实时天气数据,包括实时温度、体感温度、风力风向、相对湿度、大气压强、降水量、能见度、露点温度、云量等数据。
https://api.qweather.com/v7/weather/now?[请求参数]
https://devapi.qweather.com/v7/weather/now?[请求参数]
请求参数包括必选和可选参数,如不填写可选参数将使用其默认值,参数之间使用&
进行分隔。
key
用户认证key,请参考如何获取你的KEY。支持数字签名方式进行认证。例如 key=123456789ABC
location
需要查询地区的LocationID或以英文逗号分隔的经度,纬度坐标(十进制,最多支持小数点后两位),LocationID可通过城市搜索服务获取。例如 location=101010100
或 location=116.41,39.92
lang
多语言设置,默认中文,当数据不匹配你设置的语言时,将返回英文或其本地语言结果。
zh
中文, 默认en
英语fr
法语es
西班牙语ja
日语ko
韩语unit
度量衡单位参数选择,例如温度选摄氏度或华氏度、公里或英里。默认公制单位
m
公制单位,默认i
英制单位- // 北京实况天气
- // 商业版 https://api.qweather.com/v7/weather/now?location=101010100&key=你的KEY
- // 开发版 https://devapi.qweather.com/v7/weather/now?location=101010100&key=你的KEY
-
- {
- "code": "200",
- "updateTime": "2020-06-30T22:00+08:00",
- "fxLink": "http://hfx.link/2ax1",
- "now": {
- "obsTime": "2020-06-30T21:40+08:00",
- "temp": "24",
- "feelsLike": "26",
- "icon": "101",
- "text": "多云",
- "wind360": "123",
- "windDir": "东南风",
- "windScale": "1",
- "windSpeed": "3",
- "humidity": "72",
- "precip": "0.0",
- "pressure": "1003",
- "vis": "16",
- "cloud": "10",
- "dew": "21"
- },
- "refer": {
- "sources": [
- "QWeather",
- "NMC",
- "ECMWF"
- ],
- "license": [
- "commercial license"
- ]
- }
- }
实况数据均为近实时数据,相比真实的物理世界会5-20分钟的延迟,请根据实况数据中的
obsTime
确定数据对应的准确时间。
参数 | 描述 |
---|---|
code | API状态码,具体含义请参考状态码 |
updateTime | |
fxLink | 当前数据的响应式页面,便于嵌入网站或应用 |
now.obsTime | 数据观测时间 |
now.temp | 温度,默认单位:摄氏度 |
now.feelsLike | 体感温度,默认单位:摄氏度 |
now.icon | 天气状况和图标的代码,图标可通过天气状况和图标下载 |
now.text | 天气状况的文字描述,包括阴晴雨雪等天气状态的描述 |
now.wind360 | 风向360角度 |
now.windDir | 风向 |
now.windScale | 风力等级 |
now.windSpeed | 风速,公里/小时 |
now.humidity | 相对湿度,百分比数值 |
now.precip | 当前小时累计降水量,默认单位:毫米 |
now.pressure | 大气压强,默认单位:百帕 |
now.vis | 能见度,默认单位:公里 |
now.cloud | 云量,百分比数值。可能为空 |
now.dew | 露点温度。可能为空 |
refer.sources | 原始数据来源,或数据源说明,可能为空 |
refer.license | 数据许可或版权声明,可能为空 |
城市数据包:
和风天气提供全球15万个城市和多种兴趣点(POI)的天气数据服务,除了通过GeoAPI获取城市和POI信息以外,我们还提供了一些常见城市和POI的列表。
请优先使用GeoAPI以确保这些信息都是最新的,并可获取更多城市和POI信息。
城市和POI信息会根据各种原因而变更,因此本列表将不定期更新。
git clone https://github.com/qwd/LocationList.git
demo:
查询:
- QString currentCity = ui->comboBoxCity->currentText();
-
- QString cityCode = m_cityCodeMap.find(currentCity).value();
-
- // request weather result
- QString urlTemp = m_weather_url+"?location=%1&key=%2&lang=%3";
-
- QString url = urlTemp.arg(cityCode, m_appkey, m_langange);
- qDebug()<
-
- // do request
- QString result = requestTool.doGetSync(url);
- qDebug()<< "result: " + result;
-
- if("" == result)
- {
- ui->labelWeather->setText("天气信息显示失败");
- return;
- }
解析:
- QByteArray msg = weainfo.toUtf8();
-
- QJsonParseError err_rpt;
- QJsonDocument root_Doc = QJsonDocument::fromJson(msg, &err_rpt);
-
- if(err_rpt.error != QJsonParseError::NoError)
- {
- ui->labelWeather->setText("天气信息显示失败");
- qDebug() << "json parse error";
- return;
- }
-
- QJsonObject root_obj = root_Doc.object();
-
- QString code = root_obj.value("code").toString();
- if("200" != code)
- {
- ui->labelWeather->setText("天气信息显示失败");
- qDebug()<< "search weather info failed";
- return;
- }
-
- QJsonObject weaDeatilinfo = root_obj.value("now").toObject();
-
- QString text = weaDeatilinfo.value("text").toString();
-
- QString temp = weaDeatilinfo.value("temp").toString();
-
- QString info = QString("天气:%1 温度:%2℃").arg(text, temp);
- ui->labelWeather->setText(info);
效果:
demo源码下载地址:(注意下载后需要将config.json中的appkey设置为自己的,没有的可以去和风天气去注册开发者)