一张图看懂中国 769 个机场:我用开源数据画出了全网最全的航空设施分布图
769 个航空设施,31 个省级行政区,7 种类型------从北京首都国际机场到南海三沙永兴机场,从黑龙江漠河到新疆喀什,这张交互地图把中国天空的"地面骨架"一次性铺开。
本文数据与交互地图全部基于 OurAirports 公开数据,地图渲染使用 Leaflet 轻量地图库,叠加高德瓦片作为底图(支持矢量与卫星两种图层切换),文中涉及的统计数据与下载功能均为原始 WGS84 数据,截图与地图显示为 GCJ-02 坐标(注:文中数据截至 2026 年 7 月)
一张图先睹为快
我用 Leaflet + 高德瓦片把769 个机场落到了交互地图上:769 个机场可视化。

如果你曾在高德或百度地图上搜索"附近的机场",大概率只会看到一个孤零零的红色图钉。但中国的天空之下,实际铺展着 769 个航空设施------比你想象的多得多。
它们之中,有 67 个大型机场承担着绝大多数旅客运输,有 132 个直升机坪服务于应急救援与海上石油平台,有 3 个水上飞机基地藏匿于湖泊与海湾,甚至还有 2 个气球港。
为什么是 OurAirports?
OurAirports 是一个由全球用户共同维护的开放数据平台,专注于提供全球航空设施的公开数据。在这里你可以找到从国际大型机场到小型草地机场、直升机坪、水上飞机基地的详细信息。
它的核心优势可以用四个词概括: 字段全 · 清洗好 · 导出易 · 零门槛
- 字段丰富:ICAO、IATA、GPS 代码、海拔、坐标、类型、服务状态、官网、维基百科链接等 20+ 字段,每条记录都相当完整
- 数据清洗到位:自带中文关键词(keywords)、更新日期、score 置信度,减少二次清洗成本
- 导出友好:支持 CSV / GeoJSON / SQL 一键下载,无需注册,也提供 API 接口供开发者集成
- 无授权门槛:数据采用 CC0 / 公有领域授权,可直接商用、二次分发、嵌入研究论文
网站本身也是一个好用的机场查询工具:首页的搜索框可以按名称、城市、国家、IATA 代码快速定位到具体机场;全球地图上机场以标记点形式呈现,点击即可弹出详细信息页面,包含坐标、海拔、跑道数据、通信频率、用户评价等。对于视觉党来说,地图缩放探索的体验也相当不错。
对于中国研究者来说,最常用的是这个入口:
进入后右上角 "Download airports.csv" 即可一键下载 CSV。我这次拿到的数据包含 769 个中国航空设施 ,GBK 编码,字段完整到可以拿来直接做空间分析。

数据里藏着什么?
机场类型分布:中型机场占三分之一

一个反直觉的发现:大型机场只占 8.7%。超过四分之三的航空设施是中小型机场和直升机坪,它们构成了中国通用航空的"毛细血管"。
| 类型 | 数量 | 占比 | 一句话解读 |
|---|---|---|---|
| 中型机场 | 261 | 33.9% | 支线航空主力,连通三四线城市 |
| 小型机场 | 237 | 30.8% | 通用航空核心,农林勘探居多 |
| 直升机机场 | 132 | 17.2% | 应急救援、海上石油、城市警务 |
| 大型机场 | 67 | 8.7% | 旅客运输的"主动脉" |
| 已关闭 | 67 | 8.7% | 历史遗迹,如青岛流亭 |
| 水上飞机基地 | 3 | 0.4% | 极罕见,藏于湖泊海湾 |
| 气球港 | 2 | 0.3% | 小众中的小众 |
其中有定期航班 的设施 256 个,有 IATA 代码的 311 个------大约三分之一属于真正的"民航旅客运输"体系,其余多为通用机场、直升机坪或军民合用但无定期客运的机场。
省份 Top 10:新疆遥遥领先

| 省份 | 总数 | 大型机场 | 特点 |
|---|---|---|---|
| 新疆 | 77 | 2 | 地域广袤,通用航空需求旺盛 |
| 广东 | 67 | 5 | 大型机场数全国第一,大湾区枢纽 |
| 黑龙江 | 54 | 2 | 农林巡护为主,高密度通航 |
| 内蒙古 | 41 | 4 | 市市通机场,支线网络完善 |
| 四川 | 36 | 2 | 高原山地,机场是"生命线" |
| 云南 | 35 | 3 | 旅游大省,景区标配 |
| 山东 | 34 | 0 | 密度最高,但无大型机场 |
| 辽宁 | 33 | 2 | 老工业基地,通航基础好 |
| 江苏 | 28 | 5 | 经济强省,大型机场密集 |
| 海南 | 27 | 1 | 岛屿省,机场密度极高 |
两个有意思的点:
- 新疆 77 个 vs. 西藏 13 个------同为西部边疆,数量差距近 6 倍。背后是地形、人口密度、旅游开发程度的综合差异。
- 广东大型机场数(5 个)全国第一------广州白云、深圳宝安、珠海金湾、揭阳潮汕、湛江机场,与粤港澳大湾区的经济地位高度吻合。
一张可交互的全国地图
文字数据终归不够直观。我用 Leaflet 搭了一张交互地图,接入高德瓦片底图,把 769 个点全部铺了上去。

地图核心特性
| 功能 | 说明 |
|---|---|
| 按类型着色 | 大型红、中型蓝、小型绿、直升机紫、已关闭灰,一眼区分 |
| 按省份过滤 | 左侧点击省份开关,只显示目标省份 |
| 条件筛选 | "仅显示有定期航班""仅显示有 IATA 码""隐藏已关闭" |
| 实时搜索 | 名称、IATA、ICAO、城市、省份中文 |
| 底图切换 | 矢量与卫星两种高德底图随时切换 |
| 坐标转换 | WGS84 -> GCJ-02 自动转换,点位精准贴合 |
点击任意点,弹出信息卡

右上角的 CSV / SHP 下载按钮 可导出当前筛选结果。CSV 为 UTF-8 带 BOM 格式;SHP 打包为
.zip(含.geojson)。
技术要点备忘
1. 高德瓦片接入
Leaflet 接入高德瓦片有两种常用方式:矢量地图与卫星地图。
javascript
// 高德矢量地图
L.tileLayer("https://webrd0{s}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}", {
subdomains: ["1","2","3","4"]
}).addTo(map);
// 高德卫星地图
L.tileLayer("https://webst0{s}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}", {
subdomains: ["1","2","3","4"]
});
子域名轮换(subdomains)是必须的,避免单域名并发限制。
2. WGS84 到 GCJ-02 的转换
高德瓦片底图是 GCJ-02(火星坐标),而 OurAirports 的 latitude_deg/longitude_deg 是标准 WGS84。如果不转换,点会整体偏北偏东,尤其是东部沿海地区,偏移可达几十到上百米。我在前端内嵌了标准转换公式,在渲染 marker 时实时转换:
javascript
function wgs2gcj(lng, lat) { /* 标准国测局偏移算法 */ }
var gcj = wgs2gcj(airport.lon, airport.lat);
L.marker([gcj[1], gcj[0]], ...).addTo(map);
3. 数据清洗踩坑
编码坑 :原始 CSV 是 GBK 编码 ,直接用 UTF-8 读取会报错。先用 encoding='gbk' 打开,配合 errors='replace' 兜底。
中文名提取 :keywords 列藏着大量中文别名。我的脚本遍历 keywords 中逗号分隔的项,用中文正则 \u4e00-\u9fff 匹配,配合 机场 等关键词过滤。对于缺失的情况,构建了一个完整的 IATA -> 中文名映射字典(覆盖 200+ 个常见机场),辅以英文命名规则翻译(如 Air Base -> 空军基地),最终覆盖了约 59% 的机场。
城市名翻译 :通过 municipality 列,建立了一个英文城市 -> 中文城市的映射字典,覆盖 500+ 个常见城市/区县名。对于括号内的区县级信息(如 Shanghai (Pudong)),同样保留并翻译为"上海(浦东)"。
海拔换算 :OurAirports 只有 elevation_ft(英尺),统一换算为 elev_m(米,保留两位小数),在卡片中仅显示米。
还有一个细节:name 列中部分字符存在编码异常(如 ?rümqi),还原为 Ürümqi 后再进行翻译。
4. 已关闭机场的取舍
67 个已关闭的设施中,有不少是有历史研究价值的(例如已退役的青岛流亭机场)。在默认视图中我将其隐藏,但可以通过左侧开关单独打开,研究城市航空历史时非常有用。
数据怎么用
这套数据可以延伸出很多分析方向:
- 城市航空可达性研究:结合机场等级、定期航班、人口数据,计算各城市航空服务半径。
- 机场选址分析:对比大型机场周边的人口密度、GDP、交通网络,找到潜在的选址空白。
- 区域航空不平衡研究:新疆 77 个 vs. 西藏 13 个,这种数量差异背后的政策与地理因素。
- 历史变迁回溯 :通过
last_updated和closed状态,观察机场的生命周期与退役规律。
文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。