百木园-与人分享,
就是让自己快乐。

纯Python构建上海疫情风险地图探索应用

前言

最近疫情真的是非常严重,据“百度疫情实时大数据报告”2022年3月27日19点实时数据显示,上海较昨日新增确诊51例,新增无症状2633例,形势严峻。

在这里插入图片描述

不少在上海的朋友们也尤为关注其所在地周边的疫情确诊情况,涌现了一些小程序帮助我们通过地图查看周边的疫情情况。

而今天的文章,我就来带大家学习如何使用纯Python,轻轻松松开发一款可自由探索地图上疫情风险点分布的应用,数据来源:https://tienzhao.github.io/covid-shanghai/shanghai.html,感谢分享。

而要完成这样一款交互式地图应用的开发,过程其实非常简单,主要使用到Dash、dash-leaflet、geopandas以及由我开源的feffery-antd-components等框架,下面我们分步骤介绍具体开发过程:

在这里插入图片描述

1 环境搭建

作为一款具有地图空间分析功能的应用,我们除了常规的dash+fac开发套件之外,还需要安装geopandas实现一些必须的空间分析,推荐使用conda进行虚拟环境的准备,参考命令如下:

Python学习交流Q群:903971231###
conda create -n covid-shanghai python=3.7 -c https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main -y
conda activate covid-shanghai
conda install geopandas=0.10.2 -c https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/conda-forge -y
pip uninstall rtree -y
pip install rtree dash feffery-antd-components dash-leaflet dash_extensions -i https://pypi.douban.com/simple/

 

全部执行完成后我们的应用运行环境就准备好了~

2 界面搭建

应用界面的搭建非常简单,其中地图使用到dash-leaflet中的地图功能,悬浮于地图区域右上方的信息面板使用到我的开源组件库feffery-antd-components中的AntdText()、AntdSpace()、AntdAlert()等功能,具体见本文源码(【玩转dash】公众号后台回复【上海疫情】获取全部源码)。

在这里插入图片描述

在这里插入图片描述

3 地图交互功能的实现

在这个应用中,我们需要实现的交互功能主要包含了监听地图缩放事件、监听地图范围以及根据缩放级别和范围计算得到合法范围内的疫情点并渲染到地图上。

因此我们在构建我们的dash应用回调函数时,将dl.Map()的zoom和bounds属性作为回调函数的输入,判断当zoom>=15时,从原始疫情点数据中利用geopandas的within()空间关系,来找到当前地图范围内所有疫情点并处理后传到地图上进行渲染,并向右上角信息框中更新当前范围内疫情点数量。

在这里插入图片描述

最后

疫情期间,大家都要做好防护,保护好自己。这一篇文章的源码就不给大家了,感兴趣的小伙伴可以自己动动手去试一下。到这里就没有了,下一篇见啦!

在这里插入图片描述


来源:https://www.cnblogs.com/123456feng/p/16106638.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 纯Python构建上海疫情风险地图探索应用

相关推荐

  • 暂无文章