打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
纯Python开发在线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底图上叠加的导出矢量结果位置没有发生偏移:

本期的例子仅仅是展示了facflc能力的冰山一角,事实上只要你善于利用facflc中的不同功能组件,从在线小工具,到数据中台平台,都可以仅通过编写Python代码轻松实现,你可以在【玩转dash】公众号后台回复geojson获取全部源码,更多dash高级应用案例欢迎持续关注【玩转dash】公众号。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
这个Python网页应用开发神器终于来了!
这十个不常见但却十分实用的Python库,你知道几个?
少有人知的python数据科学库
这些Python库真的很“冷”,但是却很强大
资源 | 让你事半功倍的小众Python库
01.Python Dash网页开发:环境配置和初试
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服