空气质量 WebGIS 可视化实战
背景与需求
近期湖南省出现了一次明显的空气污染过程,以长沙及周边地区为主。为了更直观地展示全省空气质量状况,我们尝试将百度天气接口数据与地理信息系统(WebGIS)结合,构建一个动态交互的展示平台。
除了查看表格数据,通过地图空间化展示能更清晰地识别污染范围,未来还可结合风场数据预判扩散趋势。
技术实现
1. 空气质量等级标准
首先明确 AQI 指数与颜色的对应关系,这是前端可视化的基础:
| 空气指数 | 空气状况 | 对健康影响情况 | 建议采取的措施 |
|---|---|---|---|
| 0-50 | 优 | 空气质量令人满意,基本无空气污染,对健康没有危害 | 各类人群可多参加户外活动,多呼吸一下清新的空气。 |
| 51-100 | 良好 | 除少数对某些污染物特别敏感的人群外,不会对人体健康产生危害 | 除少数对某些污染物特别容易过敏的人群外,其他人群可以正常进行室外活动。 |
| 101-150 | 轻度污染 | 敏感人群症状会有轻度加剧,对健康人群没有明显影响 | 儿童、老年人及心脏病、呼吸系统疾病患者应尽量减少体力消耗大的户外活动。 |
| 151-200 | 中度污染 | 敏感人群症状进一步加剧,可能对健康人群的心脏、呼吸系统有影响 | 儿童、老年人及心脏病、呼吸系统疾病患者应尽量减少外出,停留在室内,一般人群应适量减少户外运动。 |
| 201-300 | 重度污染 | 空气状况很差,会对每个人的健康都产生比较严重的危害 | 儿童、老年人及心脏病、肺病患者应停留在室内,停止户外运动,一般人群尽量减少户外运动。 |
| >300 | 严重污染 | 空气状况极差,所有人的健康都会受到严重危害 | 儿童、老年人和病人应停留在室内,避免体力消耗,除有特殊需要的人群外,一般人群尽量不要停留在室外。 |
2. 后端数据查询
在 PostgreSQL 数据库中,利用 PostGIS 扩展处理空间数据。我们需要关联天气表、行政区划表和地理名称表,提取几何信息并转换为 GeoJSON 格式供前端使用。
SELECT t2.*, T.province_code, T.province_name, T.city_code, T.city_name, T.area_code, T.area_name,
t1.geom, st_asgeojson(T.geom) geomJson, st_x(t1.geom) lon, st_y(t1.geom) lat
FROM biz_weather_now t2, biz_area T, biz_geographic_name t1
WHERE to_char(t2.uptime, 'YYYY-MM-DD') = '2025-10-12'
AND T.province_code = '430000'
AND T.area_name = t1.NAME
AND T.area_code = t2.location_code
AND st_contains(T.geom, t1.geom)
T.area_code;


