Leaflet绘制新冠病毒全球及中国各省市数据分布

1,001 阅读2分钟

目标设定

  1. 绘制全球新冠感染人员分布及热力图
  2. 绘制中国各省市新冠感染人员分布及热力图

解决思路

数据清洗

  1. 感染数据,通过akshare获取网易提供的数据,详细参考:akshare.readthedocs.io/zh_CN/lates…
  2. 全球位置数据:网上多方查找筛选,找到一个相对比较全的json文件,里面缺少部分感染国家数据,已补充
  3. 中国位置数据:通过调用百度API的地理编码接口进行解析获取省市区经纬度
  4. 数据合成,将感染数据与位置数据合成为所需数据,通过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管理自建接口,测试结果如下:

在这里插入图片描述 在这里插入图片描述

效果展示

在这里插入图片描述 在这里插入图片描述