纯Python开发在线GeoJSON数据生成器
Editor's Note
纯Python开发地图应用so easy
The following article is from 玩转Dash Author 费弗里
【玩转dash】公众号后台回复关键词【geojson】获取本期全部源码
在今天的教程中,费老师我将为大家展示如何通过纯Python
编程的方式,开发出一个在线地图应用,使得我们可以在在线地图上交互式地绘制一个个的地理围栏,并为其逐一添加相关属性字段,最后一键导出为常用的GeoJSON
格式文件,非常地简单快捷,下面的视频展示了这个应用的使用方式:
而我是如何只用Python
就开发出这样功能丰富的网页应用的呢,下面我就来给大家详细介绍:
1 环境准备&应用启动
首先我们来创建应用的虚拟开发环境,建议使用Conda
,命令如下:
创建虚拟环境并激活
conda create -n geojson-app python=3.8 -c https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main -y
conda activate geojson-app
安装相关依赖
完成环境的创建和激活后,我们需要安装运行该应用所需的一些必要依赖,直接把下列命令整体粘贴到终端执行,然后耐心等待完成即可:
conda install geopandas=0.11.0 -c https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/conda-forge -y
pip install dash feffery_antd_components feffery_leaflet_components -U -i https://pypi.tuna.tsinghua.edu.cn/simple
全部执行完成后我们的应用开发运行环境就准备完成啦,这时你可以将本期教程对应的附件(【玩转dash】公众号后台回复geojson获取本期全部源码)解压后,在前面虚拟环境激活的情况下,cd
到根目录,执行python app.py
,然后本地浏览器访问http://127.0.0.1:8050/
即可使用本应用:
2 关键功能的构建
只写Python
开发这样的应用,我们在底层dash
框架的基础上,使用到由费老师我开源维护的通用组件库feffery-antd-components
(简称fac
,最新版本0.1.14
,目前下载安装量已超过5万次):
以及同样由我开源并维护的地图功能组件库feffery-leaflet-components
(简称flc
,目前处于早期测试阶段,最新版本0.0.1a2
):
在这两大组件库的加持下,我们只需要编写十分简单易懂的Python
代码即可实现丰富功能,譬如我们的应用中,地图部分的全部功能,仅需要下面这一点代码即可构建:
而我们虽然是在高德地图(火星坐标系)的底图上绘制的矢量,但通过我在flc
中额外开发的数据转换方法,即可一步到位实现面要素输出为WGS84
坐标系的功能,因此前面演示视频最后我们在QGIS
里可以看到,osm
底图上叠加的导出矢量结果位置没有发生偏移:
本期的例子仅仅是展示了fac
与flc
能力的冰山一角,事实上只要你善于利用fac
与flc
中的不同功能组件,从在线小工具,到数据中台平台,都可以仅通过编写Python
代码轻松实现,你可以在【玩转dash】公众号后台回复geojson获取全部源码,更多dash
高级应用案例欢迎持续关注【玩转dash】公众号。
以上就是本文的全部内容,欢迎在【玩转dash】公众号后台回复【进群】加入交流群参与更多学习讨论。