目标设定
- 绘制全球新冠感染人员分布及热力图
- 绘制中国各省市新冠感染人员分布及热力图
解决思路
数据清洗
- 感染数据,通过akshare获取网易提供的数据,详细参考:akshare.readthedocs.io/zh_CN/lates…
- 全球位置数据:网上多方查找筛选,找到一个相对比较全的json文件,里面缺少部分感染国家数据,已补充
- 中国位置数据:通过调用百度API的地理编码接口进行解析获取省市区经纬度
- 数据合成,将感染数据与位置数据合成为所需数据,通过FastAPI创建REST API接口供前台调用
感染数据
<!--清洗后(全球)-->
{
"中国": {
"confirm": 80956,
"dead": 3162,
"heal": 61574,
"severe": 4492,
"suspect": 285
},
"日本": {
"confirm": 1277,
"dead": 19,
"heal": 427,
"severe": 0,
"suspect": 0
},
...
}
注:国内感染数据较为复杂,分为4类:已明确省市区、未明确省市区、境外输出人员、外地来京津沪人员,此处仅以明确省市区为例
<!--清洗后(中国)-->
{
{
"cityName":"武汉",
"currentConfirmedCount":14438,
"confirmedCount":49978,
"suspectedCount":0,
"curedCount":33117,
"deadCount":2423,
"locationId":420100,
"provinceName":"湖北省"
},
{
"cityName":"孝感",
"currentConfirmedCount":243,
"confirmedCount":3518,
"suspectedCount":0,
"curedCount":3149,
"deadCount":126,
"locationId":420900,
"provinceName":"湖北省"
},
...
}
全球数据样例
<!--全球经纬度数据-->
{
"刚果共和国":{"lat":"-3.956184","lon":"15.438615"},
"马提尼克岛":{"lat":"14.625303","lon":"-61.055331"},
"多哥共和国":{"lat":"6.180834","lon":"1.226131"},
...
}
数据合成后封装接口
注意:此接口临时开放,不保证稳定,切勿恶意使用和攻击
接口地址(全球):pandora128.cn/fastapi/vir…
接口地址(中国):pandora128.cn/fastapi/vir…
请求方法:POST
请求参数:无
此处采用EOLINKER管理自建接口,测试结果如下:
效果展示