导入
空气质量 API
学习如何获取特定位置的当前、预报和历史空气污染数据。
该 API 提供任意指定位置的当前空气污染数据。此外,它还提供所选位置的空气质量预报和历史空气污染数据。
注意: 历史空气污染数据自 2020 年 11 月 27 日起可用。

空气质量指数(AQI)等级
| 定性名称 | 指数 | 污染物浓度(μg/m³) | |||
|---|---|---|---|---|---|
| NO2 | PM10 | O3 | PM2.5(可选) | ||
| 优 | 1 | 0-50 | 0-25 | 0-60 | 0-15 |
| 良 | 2 | 50-100 | 25-50 | 60-120 | 15-30 |
| 中等 | 3 | 100-200 | 50-90 | 120-180 | 30-55 |
| 差 | 4 | 200-400 | 90-180 | 180-240 | 55-110 |
| 极差 | 5 | >400 | >180 | >240 | >110 |
请求参数
| 参数 | 类型 | 分类 | 描述 |
|---|---|---|---|
| APP_ID | 字符串 | 必填 | 这是您的唯一 API 密钥。 |
| lat | 十进制 | 必填 | 该位置的纬度。 |
| lon | 十进制 | 必填 | 该位置的经度。 |
1// 导入所需库 2import fetch from "node-fetch"; 3 4// 定义 API 密钥 5const APP_ID = '{{APP_ID}}'; 6 7// 定义接口地址 8const url = new URL(`http://api.openweathermap.org/data/2.5/air_pollution`); 9 10// 定义请求头参数 11const headerParameters = { 12 contentType: 'application/json', 13}; 14 15// 定义查询参数 16const lat = 47.6038321; 17const lon = -122.3300624; 18 19const queryParameters = new URLSearchParams({ 20 lat: lat.toString(), 21 lon: lon.toString(), 22 appid: APP_ID 23}); 24 25// 设置 API 请求选项 26const options = { 27 method: 'GET', 28 headers: headerParameters, 29}; 30 31// 发起 API 请求的函数 32async function getAirPollution() { 33 try { 34 url.search = queryParameters; 35 const response = await fetch(url, options); 36 37 // 自定义函数:打印 API 响应结果 38 printResponse(response); 39 } catch (error) { 40 // 自定义函数:打印错误信息 41 printError(error); 42 } 43} 44 45// 调用函数发起请求 46getAirPollution();
响应字段
| 字段 | 类型 | 描述 |
|---|---|---|
| coord.lat | 十进制 | 该位置的纬度。 |
| coord.lon | 十进制 | 该位置的经度。 |
| list.components.co | 十进制 | 一氧化碳浓度,单位为 μg/m³。 |
| list.components.nh3 | 十进制 | 氨气浓度,单位为 μg/m³。 |
| list.components.no | 十进制 | 一氧化氮浓度,单位为 μg/m³。 |
| list.components.no2 | 十进制 | 二氧化氮浓度,单位为 μg/m³。 |
| list.components.o3 | 十进制 | 臭氧浓度,单位为 μg/m³。 |
| list.components.pm10 | 十进制 | 粗颗粒物浓度,单位为 μg/m³。 |
| list.components.pm2_5 | 十进制 | 细颗粒物浓度,单位为 μg/m³。 |
| list.components.so2 | 十进制 | 二氧化硫浓度,单位为 μg/m³。 |
| list.dt | 日期时间 | 时间戳,单位为 Unix 时间(UTC)。 |
| list.main.aqi | 整数 | 空气质量指数,取值范围:1 表示优,2 表示良,3 表示中等,4 表示差,5 表示极差。 |
请求参数
| 参数 | 类型 | 分类 | 描述 |
|---|---|---|---|
| APP_ID | 字符串 | 必填 | 这是您的唯一 API 密钥。 |
| lat | 十进制 | 必填 | 该位置的纬度。 |
| lon | 十进制 | 必填 | 该位置的经度。 |
1// 导入所需库 2import fetch from "node-fetch"; 3 4// 定义 API 密钥 5const APP_ID = '{{APP_ID}}'; 6 7// 定义接口地址(预报) 8const url = new URL(`http://api.openweathermap.org/data/2.5/air_pollution/forecast`); 9 10// 定义请求头参数 11const headerParameters = { 12 contentType: 'application/json', 13}; 14 15// 定义查询参数 16const lat = 47.6038321; 17const lon = -122.3300624; 18 19const queryParameters = new URLSearchParams({ 20 lat: lat.toString(), 21 lon: lon.toString(), 22 appid: APP_ID 23}); 24 25// 设置 API 请求选项 26const options = { 27 method: 'GET', 28 headers: headerParameters, 29}; 30 31// 发起 API 请求的函数 32async function getAirPollution() { 33 try { 34 url.search = queryParameters; 35 const response = await fetch(url, options); 36 37 // 自定义函数:打印 API 响应结果 38 printResponse(response); 39 } catch (error) { 40 // 自定义函数:打印错误信息 41 printError(error); 42 } 43} 44 45// 调用函数发起请求 46getAirPollution();
响应字段
| 字段 | 类型 | 描述 |
|---|---|---|
| coord.lat | 十进制 | 该位置的纬度。 |
| coord.lon | 十进制 | 该位置的经度。 |
| list.components.co | 十进制 | 一氧化碳浓度,单位为 μg/m³。 |
| list.components.nh3 | 十进制 | 氨气浓度,单位为 μg/m³。 |
| list.components.no | 十进制 | 一氧化氮浓度,单位为 μg/m³。 |
| list.components.no2 | 十进制 | 二氧化氮浓度,单位为 μg/m³。 |
| list.components.o3 | 十进制 | 臭氧浓度,单位为 μg/m³。 |
| list.components.pm10 | 十进制 | 粗颗粒物浓度,单位为 μg/m³。 |
| list.components.pm2_5 | 十进制 | 细颗粒物浓度,单位为 μg/m³。 |
| list.components.so2 | 十进制 | 二氧化硫浓度,单位为 μg/m³。 |
| list.dt | 日期时间 | 时间戳,单位为 Unix 时间(UTC)。 |
| list.main.aqi | 整数 | 空气质量指数,取值范围:1 表示优,2 表示良,3 表示中等,4 表示差,5 表示极差。 |
请求参数
| 参数 | 类型 | 分类 | 描述 |
|---|---|---|---|
| APP_ID | 字符串 | 必填 | 这是您的唯一 API 密钥。 |
| lat | 十进制 | 必填 | 该位置的纬度。 |
| lon | 十进制 | 必填 | 该位置的经度。 |
| start | 日期时间 | 必填 | 查询起始时间,单位为 Unix 时间(UTC)。 |
| end | 日期时间 | 必填 | 查询结束时间,单位为 Unix 时间(UTC)。 |
1// 导入所需库 2import fetch from "node-fetch"; 3 4// 定义 API 密钥 5const APP_ID = '{{APP_ID}}'; 6 7// 定义接口地址(历史数据) 8const url = new URL(`http://api.openweathermap.org/data/2.5/air_pollution/history`); 9 10// 定义请求头参数 11const headerParameters = { 12 contentType: 'application/json', 13}; 14 15// 定义查询参数 16const lat = 47.6038321; 17const lon = -122.3300624; 18const currentTimeInMs = Date.now(); 19const secs1Day = 24 * 60 * 60; 20const start = parseInt((currentTimeInMs/1000) - (5 * secs1Day)); 21const end = parseInt(currentTimeInMs/1000); 22 23const queryParameters = new URLSearchParams({ 24 lat: lat.toString(), 25 lon: lon.toString(), 26 start: start.toString(), 27 end: end.toString(), 28 appid: APP_ID 29}); 30 31// 设置 API 请求选项 32const options = { 33 method: 'GET', 34 headers: headerParameters, 35}; 36 37// 发起 API 请求的函数 38async function getAirPollution() { 39 try { 40 url.search = queryParameters; 41 const response = await fetch(url, options); 42 43 // 自定义函数:打印 API 响应结果 44 printResponse(response); 45 } catch (error) { 46 // 自定义函数:打印错误信息 47 printError(error); 48 } 49} 50 51// 调用函数发起请求 52getAirPollution();
响应字段
| 字段 | 类型 | 描述 |
|---|---|---|
| coord.lat | 十进制 | 该位置的纬度。 |
| coord.lon | 十进制 | 该位置的经度。 |
| list.components.co | 十进制 | 一氧化碳浓度,单位为 μg/m³。 |
| list.components.nh3 | 十进制 | 氨气浓度,单位为 μg/m³。 |
| list.components.no | 十进制 | 一氧化氮浓度,单位为 μg/m³。 |
| list.components.no2 | 十进制 | 二氧化氮浓度,单位为 μg/m³。 |
| list.components.o3 | 十进制 | 臭氧浓度,单位为 μg/m³。 |
| list.components.pm10 | 十进制 | 粗颗粒物浓度,单位为 μg/m³。 |
| list.components.pm2_5 | 十进制 | 细颗粒物浓度,单位为 μg/m³。 |
| list.components.so2 | 十进制 | 二氧化硫浓度,单位为 μg/m³。 |
| list.dt | 日期时间 | 时间戳,单位为 Unix 时间(UTC)。 |
| list.main.aqi | 整数 | 空气质量指数,取值范围:1 表示优,2 表示良,3 表示中等,4 表示差,5 表示极差。 |