web GIS神器,一行命令快捷构建精灵图服务

共 1391字,需浏览 3分钟

 ·

2024-04-10 21:37


4c5d0e8043d3b4ab202367591ddab491.webp


添加微信号 " CNFeffery "


备注"数据分析"入技术交流群



本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes


1 简介

大家好我是费老师,martin作为快速发展中的新一代开源「高性能」地图服务框架,在之前的两篇文章中,我已为大家分别介绍过使用martin快速发布「矢量切片地图服务」如何发布具有超高性能的地图服务)以及「字体切片服务」一行命令快捷构建在线地图字体切片服务)的相关教程。


0dad39ff2da27a89aca20caa5e59c540.webp

而在基于MaplibreMapbox等高性能地图框架构建地图应用时,使用一整张集成了多个图片信息的精灵图Sprite)来代替「单独请求」各个图标文件,可以在地图应用需要渲染「类型众多」的图标时,大幅度提升相关资源的网络请求加载速度(精灵图示例如下):


a6674019c9625e6fbb22b45914060199.webp

而想将原始的众多图片,转换为类似上图所示的一整张精灵图并附带生成对应的索引信息,传统的方式都比较繁琐。而在今天的文章中,费老师我就将为大家介绍如何基于martin,仅通过一行命令就搞定从精灵图动态生成,到部署为直接可用服务的全过程😎~

2 利用martin快速构建精灵图服务

本文演示所使用的martin版本为0.13.0


a229debb3039ab1e5913532d127013cf.webp

有关martin的环境配置、安装及版本升级,请移步我先前的相关文章,这里不再赘述。


直接使用martin命令,我们只需要通过参数--sprite来指定存放精灵图原始文件的路径即可,下面举个实际案例,我在设施点目录下存放了若干个svg格式的图标文件:


be107d631c97c1925b42c5bcfff926cd.webp

在此基础上,只需要执行martin --sprite ./设施点命令,就直接启动了相关的服务:


d65e716cae4ff9807b3caf3ec151cc4b.webp

默认参数下,访问http://127.0.0.1:3000/catalog,即可看到有关精灵图的相关资源目录信息:


6e448837706e6bdd89463aaf3167f620.webp

其中,sprites下的键名即为对应精灵图的id,据此,我们可以访问来查看对应的目标精灵图:


b0d503afd425f9ef0283218491f54f43.webp

而访问则可以看到「高精度版本」的目标精灵图:


d81dd0f0ee931d3d1eafe3338f61663d.webp

将后缀名更换为json则可以直接获取到相对应的精灵图索引信息:


bc3d3e954cfba1056302b901632c25e2.webp
95edf5b80d23c12a77ea8043418ad148.webp

而在命令中使用多个--sprite参数来指定多个路径,即可同时架起多个独立的精灵图服务,非常的方便:


aecdb376fe75f332f0b8bda312d98ac6.webp
51268135e3e20ab514f167b238adef62.webp

在此基础上,我们就可以直接在MaplibreMapbox等地图框架中直接使用了,下面是一个简单的地图应用示例,全部数据及源码你可以在「文章开头的仓库地址」中找到,按照requirements.txt使用pip安装相关依赖后,直接python app.py即可启动该应用:


528ac3f249c791dbc096bea14653772e.webp


以上就是本文的全部内容,欢迎在评论区与我进行讨论~


ca7a8a4cfb0147bc7818c1f8e049c926.webp

加入知识星球 【我们谈论数据科学】


600+ 小伙伴一起学习!

















·  推荐阅读  ·


一行命令快捷构建在线地图字体切片服务


Dash 2.15版本新特性介绍


pandas中新增的case_when()方法







浏览 45
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报