前言
地理信息系统(GIS)技术与 Web 技术的融合为地理信息可视化提供了便利。WebGIS 能够将地理空间数据直观呈现,天气数据的可视化对气象预报等领域具有重要意义。本文将从 WebGIS 的视角出发,探讨如何利用 Leaflet 这一开源 JavaScript 库,实现省域区县天气的可视化。

一、空间数据基础
本节介绍相关的空间数据基础,涉及省级空间范围、区县行政空间范围以及区县驻地等信息的检索。为了在 WebGIS 展示时将天气数据直接与行政区划关联,我们在天气表中预留了行政区划编码的字段。
1、省域空间检索
省域信息用于省级行政范围的展示,以及通过百度天气接口获取具体天气信息时作为索引。省域信息及表结构如下:
select * from biz_province;
上图中返回的 code 即为该省份对应的行政区划代码,如:130000 表示河北省。查询下级区县信息需使用区县信息表,查询语句如下(以河北省为例):
select * from biz_area t where t.province_code = '130000';
通过 SQL 查询可获取指定省份的下属区县信息,后续根据该区县 code 获取天气信息。
2、区县天气信息检索
涉及的数据表包括实时天气信息表、区县信息表及城市信息表。
| 序号 | 表名 | 说明 |
|---|---|---|
| 1 | biz_weather_now | 实时天气信息表 |
| 2 | biz_area | 区县信息表 |
| 3 | biz_geographic_name | 城市信息表 |
以下是区县天气信息检索的 SQL(以查询 2025 年 8 月 17 日的湖南省 430000 的区县天气信息为例):
SELECT t2.*, T.province_code, T.province_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-08-17' AND T.province_code = T.area_name t1.NAME T.area_code t2.location_code st_contains(t.geom, t1.geom) t.area_code;




