实时天气 - API | 和风天气开发平台
实时天气全国4000+个市县区和海外15万个城市实时天气数据,包括实时温度、体感温度、风力风向、相对湿度、大气压强、降水量、能见度、露点温度、云量等数据。
请求URL
- 商业版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确定数据对应的准确时间。
实况数据均为近实时数据,相比真实的物理世界会5-20分钟的延迟,请根据实况数据中的obsTime确定数据对应的准确时间。
| 参数 | 描述 |
|---|---|
| code | API状态码,具体含义请参考状态码 |
| updateTime | 当前API的最近更新时间 |
| 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 | 数据许可或版权声明,可能为空 |
城市数据包:
常见城市列表 - RESOURCE | 和风天气开发平台
常见城市列表和风天气提供全球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()<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设置为自己的,没有的可以去和风天气去注册开发者)
实时天气查询demo源码,可直接运行-C++文档类资源-CSDN下载



