1.数据获取
1.1 相关数据来源
1.2 数据格式
[
{
"province": "province_name",
"airport_list": [
{"name": "首都国际机场","IATA": "PEK","ICAO": "ZBAA"},
···,
{"name": "北京大兴国际机场","IATA": "PKX","ICAO": "ZBAD"}
]
},
···
]
1.3 IATA2ICAO(三字码转四字码)函数封装
from bs4 import BeautifulSoup
from urllib.request import urlopen
def IATA2ICAO(IATA):
url = "http://www.6qt.net/index.asp?Field=AreaCode&keyword=" + IATA
html = urlopen(url).read().decode('gbk')
soup = BeautifulSoup(html, features='html.parser')
data_raw = soup.select("body>table tr.tdbg>td")[4]
return data_raw.a.u.text
1.4 数据处理结果-airports.json
[
{
"province": "北京市",
"airport_list": [
{
"name": "首都国际机场",
"IATA": "PEK",
"ICAO": "ZBAA"
},
{
"name": "北京南苑机场",
"IATA": "NAY",
"ICAO": "ZBNY"
},
{
"name": "北京大兴国际机场",
"IATA": "PKX",
"ICAO": "ZBAD"
}
]
},
{
"province": "上海市",
"airport_list": [
{
"name": "上海浦东国际机场",
"IATA": "PVG",
"ICAO": "ZSPD"
},
{
"name": "上海虹桥国际机场",
"IATA": "SHA",
"ICAO": "ZSSS"
}
]
},
{
"province": "天津市",
"airport_list": [
{
"name": "天滨海国机场",
"IATA": "TSN",
"ICAO": "ZBTJ"
}
]
},
{
"province": "重庆市",
"airport_list": [
{
"name": "重庆江北国际机场",
"IATA": "CKG",
"ICAO": "ZUCK"
},
{
"name": "重庆万州五桥机场",
"IATA": "WXN",
"ICAO": "ZUWX"
},
{
"name": "万县梁平机场",
"IATA": "LIA",
"ICAO": "ZULP"
}
]
},
{
"province": "广东省",
"airport_list": [
{
"name": "广州白云国际机场",
"IATA": "CAN",
"ICAO": "ZGGG"
},
{
"name": "深圳宝安国际机场",
"IATA": "SZX",
"ICAO": "ZGSZ"
},
{
"name": "珠海三灶机场",
"IATA": "ZUH",
"ICAO": "ZGSD"
},
{
"name": "梅州梅县机场",
"IATA": "MXZ",
"ICAO": "ZGMX"
},
{
"name": "汕头外砂机场",
"IATA": "SWA",
"ICAO": "ZGOW"
},
{
"name": "惠州惠东机场",
"IATA": "HUZ",
"ICAO": "ZGHZ"
},
{
"name": "佛山沙堤机场",
"IATA": "ZCP",
"ICAO": "ZGFS"
},
{
"name": "兴宁机场",
"IATA": "XIN",
"ICAO": "ZGXN"
}
]
},
{
"province": "湖南省",
"airport_list": [
{
"name": "长沙黄花国际机场",
"IATA": "CSX",
"ICAO": "ZGHA"
},
{
"name": "张家界荷花机场",
"IATA": "DYG",
"ICAO": "ZGDY"
},
{
"name": "常德桃花源机场",
"IATA": "CGD",
"ICAO": "ZGCD"
},
{
"name": "坏化正江机场",
"IATA": "HJJ",
"ICAO": "ZGCJ"
},
{
"name": "永州零陵机场",
"IATA": "LLF",
"ICAO": "ZGLG"
},
{
"name": "衡阳机场",
"IATA": "HNY",
"ICAO": "ZGHY"
}
]
},
{
"province": "湖北省",
"airport_list": [
{
"name": "武汉天河国际机场",
"IATA": "WUH",
"ICAO": "ZHHH"
},
{
"name": "宜昌三峡机场",
"IATA": "YIH",
"ICAO": "ZHYC"
},
{
"name": "襄樊刘集机场",
"IATA": "XFN",
"ICAO": "ZHXF"
},
{
"name": "恩施许家坪机场",
"IATA": "ENH",
"ICAO": "ZHES"
},
{
"name": "沙市机场",
"IATA": "SHS",
"ICAO": "ZHSS"
}
]
},
{
"province": "江西省",
"airport_list": [
{
"name": "南昌昌北机场",
"IATA": "KHN",
"ICAO": "ZSCN"
},
{
"name": "赣州黄金机场",
"IATA": "KOW",
"ICAO": "ZSGZ"
},
{
"name": "九江马回岭机场",
"IATA": "JIU",
"ICAO": "ZSJJ"
},
{
"name": "景德镇罗家机场",
"IATA": "JDZ",
"ICAO": "ZSJD"
},
{
"name": "井冈山机场",
"IATA": "JGS",
"ICAO": "ZSGS"
}
]
},
{
"province": "福建省",
"airport_list": [
{
"name": "厦门高崎国际机场",
"IATA": "XMN",
"ICAO": "ZSAM"
},
{
"name": "福州长乐国际机场",
"IATA": "FOC",
"ICAO": "ZSFZ"
},
{
"name": "晋江泉州机场",
"IATA": "JJN",
"ICAO": "ZSQZ"
},
{
"name": "武夷山机场",
"IATA": "WUS",
"ICAO": "ZSWY"
},
{
"name": "连城机场",
"IATA": "LCX",
"ICAO": "ZSLO"
}
]
},
{
"province": "浙江省",
"airport_list": [
{
"name": "杭州萧山国际机场",
"IATA": "HGH",
"ICAO": "ZSHC"
},
{
"name": "宁波标社机场",
"IATA": "NGB",
"ICAO": "ZSNB"
},
{
"name": "温州永强机场",
"IATA": "WNZ",
"ICAO": "ZSWZ"
},
{
"name": "义乌机场",
"IATA": "YIW",
"ICAO": "ZSYW"
},
{
"name": "舟山普陀山机场",
"IATA": "HSN",
"ICAO": "ZSZS"
},
{
"name": "台州黄岩路桥机场",
"IATA": "HYN",
"ICAO": "ZSLQ"
},
{
"name": "衢州机场",
"IATA": "JUZ",
"ICAO": "ZSJU"
}
]
},
{
"province": "江苏省",
"airport_list": [
{
"name": "南京禄口机场",
"IATA": "NKG",
"ICAO": "ZSNJ"
},
{
"name": "无锡机场",
"IATA": "WUX",
"ICAO": "ZSWX"
},
{
"name": "常州奔牛机场",
"IATA": "CZX",
"ICAO": "ZSCG"
},
{
"name": "连云港白塔埠机场",
"IATA": "LYG",
"ICAO": "ZSLG"
},
{
"name": "盐城南洋机场",
"IATA": "YNZ",
"ICAO": "ZSYN"
},
{
"name": "徐州观音机场",
"IATA": "XUZ",
"ICAO": "ZSXZ"
},
{
"name": "南通兴东机场",
"IATA": "NTG",
"ICAO": "ZSNT"
}
]
},
{
"province": "山东省",
"airport_list": [
{
"name": "济南遥墙国际机场",
"IATA": "TNA",
"ICAO": "ZSJN"
},
{
"name": "青岛流亭国际机场",
"IATA": "TAO",
"ICAO": "ZSQD"
},
{
"name": "烟台莱山国际机场",
"IATA": "YNT",
"ICAO": "ZSYT"
},
{
"name": "潍坊机场",
"IATA": "WEF",
"ICAO": "ZSWF"
},
{
"name": "威海机场",
"IATA": "WEH",
"ICAO": "ZSWH"
},
{
"name": "临沂机场",
"IATA": "LYI",
"ICAO": "ZSLY"
},
{
"name": "东营机场",
"IATA": "DOY",
"ICAO": "ZSDY"
},
{
"name": "济宁机场",
"IATA": "JNG",
"ICAO": "ZSJG"
}
]
},
{
"province": "河南省",
"airport_list": [
{
"name": "郑州新郑机场",
"IATA": "CGO",
"ICAO": "ZHCC"
},
{
"name": "南阳姜营机场",
"IATA": "NNY",
"ICAO": "ZHNY"
},
{
"name": "洛阳北郊机场",
"IATA": "LYA",
"ICAO": "ZHLY"
},
{
"name": "安阳机场",
"IATA": "AYN",
"ICAO": "ZHAY"
}
]
},
{
"province": "四川省",
"airport_list": [
{
"name": "成都双流国际机场",
"IATA": "CTU",
"ICAO": "ZUUU"
},
{
"name": "攀枝花机场",
"IATA": "PZI",
"ICAO": "ZUZH"
},
{
"name": "绵阳南郊机场",
"IATA": "MIG",
"ICAO": "ZUMY"
},
{
"name": "南充高坪机场",
"IATA": "NAO",
"ICAO": "ZUNC"
},
{
"name": "达县河市机场",
"IATA": "DAX",
"ICAO": "ZUDX"
},
{
"name": "宜宾菜坝机场",
"IATA": "YBP",
"ICAO": "ZUYB"
},
{
"name": "泸州兰田坝机场",
"IATA": "LZO",
"ICAO": "ZULZ"
},
{
"name": "九寨黄龙机场",
"IATA": "JZH",
"ICAO": "ZUJZ"
},
{
"name": "西昌青山机场",
"IATA": "XIC",
"ICAO": "ZUXC"
},
{
"name": "广元机场",
"IATA": "GYS",
"ICAO": "ZUGU"
},
{
"name": "广汉机场",
"IATA": "GHN",
"ICAO": "ZUGH"
}
]
},
{
"province": "海南省",
"airport_list": [
{
"name": "三亚凤凰国际机场",
"IATA": "SYX",
"ICAO": "ZJSY"
},
{
"name": "美际机场",
"IATA": "HAK",
"ICAO": "ZJHK"
}
]
},
{
"province": "云南省",
"airport_list": [
{
"name": "昆明巫家坝国际机场",
"IATA": "KMG",
"ICAO": "ZPPP"
},
{
"name": "丽江机场",
"IATA": "LJG",
"ICAO": "ZPLJ"
},
{
"name": "大理机场",
"IATA": "DLU",
"ICAO": "ZPDL"
},
{
"name": "景洪西双版纳机场",
"IATA": "JHG",
"ICAO": "ZPJH"
},
{
"name": "中甸迪庆香格里拉机场",
"IATA": "DIG",
"ICAO": "ZPDQ"
},
{
"name": "德宏潞西芒市机场",
"IATA": "LUM",
"ICAO": "ZPMS"
},
{
"name": "思茅机场",
"IATA": "SYM",
"ICAO": "ZPSM"
},
{
"name": "保山机场",
"IATA": "BSD",
"ICAO": "ZPBS"
},
{
"name": "临沧机场",
"IATA": "LNJ",
"ICAO": "ZPLC"
},
{
"name": "昭通机场",
"IATA": "ZAT",
"ICAO": "ZPZT"
},
{
"name": "元谋机场",
"IATA": "YUA",
"ICAO": "ZPYM"
}
]
},
{
"province": "贵州省",
"airport_list": [
{
"name": "遵义新舟机场",
"IATA": "ZYI",
"ICAO": "ZUZY"
},
{
"name": "贵阳龙家堡机场",
"IATA": "KWE",
"ICAO": "ZUGY"
},
{
"name": "安顺黄果树机场",
"IATA": "AVA",
"ICAO": "ZUAS"
},
{
"name": "铜云机场",
"IATA": "TEN",
"ICAO": "ZUTR"
},
{
"name": "兴义机场",
"IATA": "ACX",
"ICAO": "ZUYI"
},
{
"name": "黎平机场",
"IATA": "HZH",
"ICAO": "ZUNP"
}
]
},
{
"province": "甘肃省",
"airport_list": [
{
"name": "兰州中川机场",
"IATA": "LHW",
"ICAO": "ZLLL"
},
{
"name": "敦煌机场",
"IATA": "DNH",
"ICAO": "ZLDH"
},
{
"name": "嘉裕关机场",
"IATA": "JGN",
"ICAO": "ZLJQ"
},
{
"name": "庆阳西峰镇机场",
"IATA": "IQN",
"ICAO": "ZLQY"
},
{
"name": "酒泉机场",
"IATA": "CHW",
"ICAO": "NNNN"
}
]
},
{
"province": "安徽省",
"airport_list": [
{
"name": "合肥路岗机场",
"IATA": "HFE",
"ICAO": "ZSOF"
},
{
"name": "黄山屯溪机场",
"IATA": "TXN",
"ICAO": "ZSTX"
},
{
"name": "安庆天柱山机场",
"IATA": "AQG",
"ICAO": "ZSAQ"
},
{
"name": "阜阳西关机场",
"IATA": "FUG",
"ICAO": "ZSFY"
}
]
},
{
"province": "陕西省",
"airport_list": [
{
"name": "西安咸阳国际机场",
"IATA": "XIY",
"ICAO": "ZLXY"
},
{
"name": "延安机场",
"IATA": "ENY",
"ICAO": "ZLYA"
},
{
"name": "榆林西沙机场",
"IATA": "UYN",
"ICAO": "ZLYL"
},
{
"name": "安康五里铺机场",
"IATA": "AKA",
"ICAO": "ZLAK"
},
{
"name": "汉中西关机场",
"IATA": "HZG",
"ICAO": "ZLHZ"
}
]
},
{
"province": "山西省",
"airport_list": [
{
"name": "太原武宿机场",
"IATA": "TYN",
"ICAO": "ZBYN"
},
{
"name": "长治王村机场",
"IATA": "CIH",
"ICAO": "ZBCZ"
},
{
"name": "运城关公机场",
"IATA": "YCU",
"ICAO": "ZBYC"
},
{
"name": "大同机场",
"IATA": "DAT",
"ICAO": "ZBDT"
}
]
},
{
"province": "河北省",
"airport_list": [
{
"name": "石家庄正定机场",
"IATA": "SJW",
"ICAO": "ZBSJ"
},
{
"name": "秦皇岛机场",
"IATA": "SHP",
"ICAO": "ZBSH"
},
{
"name": "山海关机场",
"IATA": "SHP",
"ICAO": "ZBSH"
}
]
},
{
"province": "辽宁省",
"airport_list": [
{
"name": "沈阳桃仙机场",
"IATA": "SHE",
"ICAO": "ZYTX"
},
{
"name": "大连周水子机场",
"IATA": "DLC",
"ICAO": "ZYTL"
},
{
"name": "丹东浪头机场",
"IATA": "DDG",
"ICAO": "ZYDD"
},
{
"name": "鞍山腾鳌机场",
"IATA": "AOG",
"ICAO": "ZYAS"
},
{
"name": "锦州小岭子机场",
"IATA": "NZ",
"ICAO": "ZSWZ"
},
{
"name": "朝阳机场",
"IATA": "CHG",
"ICAO": "ZYCY"
},
{
"name": "长海市大长山岛机场",
"IATA": "CNI",
"ICAO": "ZYCH"
},
{
"name": "兴城机场",
"IATA": "XEN",
"ICAO": "ZYXC"
}
]
},
{
"province": "吉林省",
"airport_list": [
{
"name": "长春龙嘉国际机场",
"IATA": "CGQ",
"ICAO": "ZYCC"
},
{
"name": "吉林二台子机场",
"IATA": "JIL",
"ICAO": "ZYJL"
},
{
"name": "延吉朝阳川机场",
"IATA": "YN",
"ICAO": "ZSYT"
}
]
},
{
"province": "黑龙江省",
"airport_list": [
{
"name": "哈尔滨阎家岗国际机场",
"IATA": "HRB",
"ICAO": "ZYHB"
},
{
"name": "齐齐哈尔三家子机场",
"IATA": "NDG",
"ICAO": "ZYQQ"
},
{
"name": "牡丹江海浪机场",
"IATA": "MDG",
"ICAO": "ZYMD"
},
{
"name": "依兰机场",
"IATA": "YLN",
"ICAO": "ZYYL"
},
{
"name": "黑河机场",
"IATA": "HEK",
"ICAO": "ZYHE"
},
{
"name": "佳木斯东郊机场",
"IATA": "MU",
"ICAO": "EDDM"
}
]
},
{
"province": "内蒙古自治区",
"airport_list": [
{
"name": "呼和浩特白塔机场",
"IATA": "HET",
"ICAO": "ZBHH"
},
{
"name": "锡林浩特机场",
"IATA": "XIL",
"ICAO": "ZBXH"
},
{
"name": "乌兰洁特机场",
"IATA": "HLH",
"ICAO": "ZBUL"
},
{
"name": "包头海兰泡机场",
"IATA": "BAV",
"ICAO": "ZBOW"
},
{
"name": "乌海机场",
"IATA": "WUA",
"ICAO": "ZBUH"
},
{
"name": "海拉尔东山机场",
"IATA": "HLD",
"ICAO": "ZBLA"
},
{
"name": "赤峰土城市机场",
"IATA": "CIF",
"ICAO": "ZBCF"
},
{
"name": "通辽机场",
"IATA": "TGO",
"ICAO": "ZBTL"
}
]
},
{
"province": "青海省",
"airport_list": [
{
"name": "西宁曹家堡机场",
"IATA": "XNN",
"ICAO": "ZLXN"
},
{
"name": "格尔木机场",
"IATA": "GOQ",
"ICAO": "ZLGM"
}
]
},
{
"province": "宁夏回族自治区",
"airport_list": [
{
"name": "银川河东机场",
"IATA": "INC",
"ICAO": "ZLIC"
}
]
},
{
"province": "西藏自治区",
"airport_list": [
{
"name": "拉萨贡嘎机场",
"IATA": "LXA",
"ICAO": "ZULS"
},
{
"name": "林芝米林机场",
"IATA": "LZY",
"ICAO": "ZUNZ"
},
{
"name": "昌都马草机场",
"IATA": "BPX",
"ICAO": "ZUBD"
}
]
},
{
"province": "新疆维吾尔自治区",
"airport_list": [
{
"name": "乌鲁木齐地窝堡机场",
"IATA": "URC",
"ICAO": "ZWWW"
},
{
"name": "喀什机场",
"IATA": "KHG",
"ICAO": "ZWSH"
},
{
"name": "伊宁机场",
"IATA": "YIN",
"ICAO": "ZWYN"
},
{
"name": "库尔勒机场",
"IATA": "KRL",
"ICAO": "ZWKL"
},
{
"name": "阿克苏机场",
"IATA": "AKU",
"ICAO": "ZWAK"
},
{
"name": "和田机场",
"IATA": "HTN",
"ICAO": "ZWTN"
},
{
"name": "阿勒泰机场",
"IATA": "AAT",
"ICAO": "ZWAT"
},
{
"name": "且末机场",
"IATA": "IQM",
"ICAO": "ZWCM"
},
{
"name": "库车机场",
"IATA": "KCA",
"ICAO": "ZWKC"
},
{
"name": "塔城机场",
"IATA": "TCG",
"ICAO": "ZWTC"
},
{
"name": "富蕴可可托海机场",
"IATA": "FYN",
"ICAO": "ZWFY"
},
{
"name": "克拉马依机场",
"IATA": "KRY",
"ICAO": "ZWKM"
},
{
"name": "哈密机场",
"IATA": "HMI",
"ICAO": "ZWHM"
}
]
}
]
2.数据分析与可视化-绘制全国机场分布情况
2.1 获取目标地图的json文件
首先要获取目标地图的json文件,去阿里云就可以获取:阿里云地理
2.2 使用echarts渲染数据
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ECharts</title>
<!-- 引入 echarts.js -->
<script src="echarts.min.js"></script>
<script src="jquery.min.js"></script>
</head>
<body>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main" style="width: 1000px;height:650px;"></div>
<script type="text/javascript">
$.get('https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json', function(cZjson) {
echarts.registerMap('中华人民共和国', cZjson);
var chart = echarts.init(document.getElementById('main'));
option = {
title: {
text: '全国机场分布图',
x: 'center'
},
dataRange: {
min: 0,
max: 15,
text: ['高', '低'],
realtime: true,
calculable: true,
color: ['orangered', 'yellow', 'green']
},
series: [{
name: '机场数量',
type: 'map',
map: '中华人民共和国',
mapLocation: {
y: 60
},
itemSytle: {
emphasis: {
label: {
show: false
}
}
},
data: [
{name: '北京市',value: 3},
{name: '上海市',value: 2},
{name: '天津市',value: 1},
{name: '重庆市',value: 3},
{name: '广东省',value: 8},
{name: '湖南省',value: 6},
{name: '湖北省',value: 5},
{name: '江西省',value: 5},
{name: '福建省',value: 5},
{name: '浙江省',value: 7},
{name: '江苏省',value: 7},
{name: '山东省',value: 8},
{name: '河南省',value: 4},
{name: '四川省',value: 11},
{name: '海南省',value: 2},
{name: '云南省',value: 11},
{name: '贵州省',value: 6},
{name: '甘肃省',value: 5},
{name: '安徽省',value: 4},
{name: '陕西省',value: 5},
{name: '山西省',value: 4},
{name: '河北省',value: 3},
{name: '辽宁省',value: 8},
{name: '吉林省',value: 3},
{name: '黑龙江省',value: 6},
{name: '内蒙古自治区',value: 8},
{name: '青海省',value: 2},
{name: '宁夏回族自治区',value: 1},
{name: '西藏自治区',value: 3},
{name: '新疆维吾尔自治区',value: 13},
]
}],
};
chart.setOption(option);
});
</script>
</body>
</html>
评论 (0)