本文全面介绍由接口盒子提供的全球天气预报API,支持通过经纬度坐标获取任意地区未来5天的详细天气预报数据。
一、接口核心功能
- 全球覆盖:支持全球任意经纬度坐标点的天气预报
- 高精度预报:提供每3小时为间隔的精细化预报(5天共40组数据)
- 多维度数据:包含天气状况、温度、气压、湿度、风速等12项气象要素
- 免费使用:个人开发者可直接调用(需注册获取专属KEY)
二、接口基本信息
| 项目 | 说明 |
| 请求地址 | https://cn.apihz.cn/api/tianqi/tqybjw5.php |
| 请求方式 | GET/POST |
| 数据格式 | JSON |
| 响应时间 | 平均200-500ms |
三、请求参数说明
| 参数名 | 必填 | 示例值 | 说明 |
| id | 是 | 10000000 | 用户中心注册的数字ID |
| key | 是 | 15he5h15ty854j5sr152hs2 | 用户中心通讯秘钥 |
| lat | 是 | 40.05702706489032 | 纬度坐标(十进制) |
| lon | 是 | 116.30787799999993 | 经度坐标(十进制) |
📌 重要提示:
示例中的88888888为公共测试KEY,实际使用请注册获取专属KEY
免费版限制:5次/分钟,无日总量限制
四、返回参数详解
json
复制
{ "code": 200, // 状态码(200成功,400错误) "cnt": 40, // 数据组数量(5天×8组/天) "name": "Haidian", // 最近城市名称 "country": "CN", // 国家代码(ISO标准) "sunrise": 1726523854, // 日出时间戳 "sunset": 1726568470, // 日落时间戳 "data": [ // 天气预报数据集合 { "dt": 1726552800, // 时间戳 "time": "2024-09-17 06:00:00", // 本地时间 "temp": 300.91, // 开氏温度(K) "temph": 27.76, // 摄氏温度(℃) "pressure": 1006, // 气压(hPa) "humidity": 44, // 湿度(%) "weather": "晴", // 天气现象 "clouds": 2, // 云量百分比(%) "speed": 2.67, // 风速(m/s) "deg": 111, // 风向(度) "visibility": 10000 // 能见度(米) }, // ...共40组数据... ] }
🌡️ 温度说明:
temp:开尔文温度(科学计算常用)temph:摄氏温度(日常使用)
转换公式:℃ = K - 273.15
五、调用示例代码
PHP调用示例
php
复制
<?php // 配置参数 $apiUrl = "https://cn.apihz.cn/api/tianqi/tqybjw5.php"; $params = [ 'id' => '10000000', // 替换为您的ID 'key' => '您的专属KEY', // 替换为您的KEY 'lat' => '40.057027', // 纬度 'lon' => '116.307878' // 经度 ]; // 构造请求URL $requestUrl = $apiUrl . '?' . http_build_query($params); // 发起GET请求 $response = file_get_contents($requestUrl); // 处理响应 if ($response !== false) { $weatherData = json_decode($response, true); if ($weatherData['code'] == 200) { echo "城市: " . $weatherData['name'] . "\n"; echo "今日天气: " . $weatherData['data'][0]['weather']; echo "温度: " . round($weatherData['data'][0]['temph'], 1) . "℃"; } else { echo "错误: " . $weatherData['msg']; } } else { echo "API请求失败"; } ?>
Python调用示例
python
运行
复制
import requests # 配置参数 params = { "id": "10000000", # 替换为您的ID "key": "您的专属KEY", # 替换为您的KEY "lat": "40.057027", # 纬度 "lon": "116.307878" # 经度 } try: # 发送GET请求 response = requests.get( "https://cn.apihz.cn/api/tianqi/tqybjw5.php", params=params ) weather_data = response.json() if weather_data['code'] == 200: # 提取首条数据 first_report = weather_data['data'][0] print(f"城市: {weather_data['name']}") print(f"时间: {first_report['time']}") print(f"天气: {first_report['weather']}") print(f"温度: {round(first_report['temph'], 1)}℃") print(f"风速: {first_report['speed']}m/s") else: print(f"错误: {weather_data['msg']}") except Exception as e: print(f"请求异常: {str(e)}")
六、使用注意事项
- 坐标获取:需先通过地理编码服务获取经纬度
- 时间说明:返回时间均为当地标准时间
- 单位规范:
- 温度:摄氏度(℃)/开尔文(K)双轨提供
- 气压:百帕(hPa)
- 风速:米/秒(m/s)
- 错误处理:常见错误码:
400:参数错误或KEY验证失败500:服务器内部错误
七、应用场景
- 气象数据可视化平台
- 出行类APP的天气模块
- 物联网设备环境监测
- 农业种植气候监控
- 户外活动安全预警系统