技术博客
全国城市空气质量查询:旅游 / 健康类应用的落地方案

全国城市空气质量查询:旅游 / 健康类应用的落地方案

作者: 万维易源
2026-08-31
空气质量旅游健康多城对比
# 全国城市空气质量查询:旅游 / 健康类应用的落地方案 > 接口/接入点:全国城市空气质量查询(apiCode=104)· 104-41/104-42 · 免费 · 返回 JSON · 适用人群:旅游/健康类产品开发者 · 阅读时间:约 7 分钟 ## 核心要点 - 旅游场景:出行前查目的地空气,敏感人群(老人/儿童/呼吸道患者)据此调整行程或备药。 - 健康场景:结合 `quality` 等级做提醒话术,轻度污染及以上触发「减少户外/戴口罩」建议。 - 多城对比:用 104-41 排行榜做「周边/候选城市空气对比」,辅助目的地决策。 ## Why:旅游与健康为什么需要空气数据 用户规划一次出行,不只看天气,也看「到了那里呼吸顺不顺」。对鼻炎、哮喘、慢阻肺人群,空气质量甚至比温度更重要。把空气数据嵌入行程卡片、健康提醒,是这类产品的差异化加分项。 ## What:接口速览 | 项 | 内容 | |----|------| | 单城查询 104-42 | 按 `area` 返回单条(含 aqi/pm2_5/quality/primary_pollutant) | | 排行榜 104-41 | `list` 全国主要城市排名,可做多城对比 | | 等级字段 | `quality`(6 类),健康提醒的触发开关 | ## How:目的地空气 + 健康提醒 ```python import requests def travel_advice(city: str, appkey: str) -> dict: b = requests.post( "https://route.showapi.com/104-42", params={"appKey": appkey}, data={"area": city}, timeout=10, ).json()["showapi_res_body"] q = b["quality"] # 仅作参考,敏感人群请以官方发布为准 tips = { "优质": "空气清新,适合户外活动", "良好": "空气尚可,正常活动无碍", "轻度污染": "敏感人群减少长时间户外", "中度污染": "建议减少户外,外出戴口罩", "重度污染": "尽量避免外出,关闭门窗", "严重污染": "留守室内,开启净化设备", } return {"city": b["area"], "quality": q, "aqi": int(b["aqi"]), "tip": tips.get(q, "")} def compare_cities(cities: list, appkey: str) -> list: out = [] for c in cities: b = requests.post("https://route.showapi.com/104-42", params={"appKey": appkey}, data={"area": c}, timeout=10 ).json()["showapi_res_body"] out.append({"city": b["area"], "aqi": int(b["aqi"]), "quality": b["quality"]}) return sorted(out, key=lambda x: x["aqi"]) # 空气好(AQI 小)的排前面 ``` ### cURL 速测 ```bash curl -X POST "https://route.showapi.com/104-42?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" -d "area=%E4%B8%BD%E6%B1%9F" ``` ## 返回示例与解析 查「丽江」实测 `quality=优质`、`aqi=11`;「成都」`quality=良好`、`aqi=52`。多城对比时按 `aqi` 升序,「丽江」更适合呼吸道敏感人群。注意 `primary_pollutant` 在优/良时为空,提醒话术里不要硬塞污染物名称。 ## 进阶 / 边界 - **健康建议仅作参考**:接口给等级文字,健康决策请以官方发布为准,避免过度承诺「安全/危险」。 - **小地区回退**:输入具体景区/县城会回退到上级城市,对比时注意展示「实际参考城市」。 - **多城调用成本**:逐城查询会多次计额度,建议对固定候选集做服务端缓存(见系列第 7 篇)。 - **等级文字一致性**:线上为「优质」,UI 文案保持一致。 ## FAQ **Q1:能直接告诉用户「今天能不能去跑步」吗?** 可用 `quality` 等级给建议,但属参考性质;敏感人群请以官方健康指引为准。 **Q2:多城对比要调很多次接口?** 是的,每城一次;建议候选集固定后服务端缓存,避免重复消耗额度。 **Q3:景区/县城查不到怎么办?** 接口回退到上级主要城市,展示时注明「参考上级城市 X 的空气质量」。 **Q4:首要污染物为空时要怎么写提醒?** 优/良时为空属正常,提醒中不要出现「首要污染物:无」这类表述。 ## 相关能力 / 下一步阅读 - [全国城市空气质量查询:空气质量等级(优质/良好/污染)判定与配色指南](https://www.showapi.com/guides/air-quality-quality-levels-104) - [全国城市空气质量查询:单城市实时查询集成指南(从请求到 UI 展示)](https://www.showapi.com/guides/air-quality-query-integration-104) - [全国城市空气质量查询:环境监测与智能设备的低成本集成](https://www.showapi.com/guides/air-quality-iot-monitor-104) - **本系列共 11 篇**:查看[全国城市空气质量查询 · 指南总目录](https://www.showapi.com/guides/air-quality-guides-104)