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

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

1 简介

大家好我是费老师,在之前的一篇文章(如何发布具有超高性能的地图服务)中我为大家介绍过martin的安装与使用,它是由maplibre开源维护的新一代高性能地图服务框架,底层基于rust,使得其可以以远胜于geoserver等传统地图服务框架的效率,进行矢量切片地图服务的发布。

martin除了构建矢量切片地图服务的核心功能外,还兼具了其他地图服务常用功能。今天的文章中,我就将为大家介绍如何使用martin快捷构建自定义字体切片服务。

7845cdaffbef7e5aeaa525f187d9eec5.png

2 利用martin构建自定义字体切片服务

maplibremapbox等框架在构建在线地图应用时,如果需要在地图中使用自定义字体,由于字体文件尤其是中文等字体体积较大,出于应用资源加载速度优化的考虑,不会接受完整的字体文件,而是需要自行将原始的字体文件转换为pbf切片的形式,并构建相应的web服务,供地图应用自动按需访问使用相应切片资源,这一套过程在过去,实现起来还是比较繁琐。

martin0.10.0版本开始提供快捷的字体切片服务功能,使得我们只需要一行命令即可搞定上述的所有过程😎。

首先我们执行cargo install martin --forcemartin进行覆盖更新,譬如我之前的martin版本为0.8.7

8dc1fa89ab9f54b70423ccdc91307c4a.png

版本更新后来到0.11.0

65e4478f709162baf263000a0537d32f.png

接着我们只需要在本地准备好otfttfttc等常见格式的字体文件,接着执行利用martin命令的--font参数进行字体源的定义,可以接受单个字体文件,也可以接受路径用于批量识别路径下所有字体文件,还可以通过多个--font参数分别定义若干字体源规则,下面的示例中我们以识别目标路径下所有字体文件为例:

/home/feffery/.cargo/bin/martin --font .

adf6eadd0812b71ac33b0ae44331cd12.png

就这么简单,我们就启动了自定义字体切片服务,默认访问本机的http://127.0.0.1:3000/catalog地址,即可查看到已成功注册的各字体切片服务信息,其中fonts下各个「键名」,就可以作为「字体名称」在地图应用中进行配置:

03c09c6aaf22da09dc84c290cdfb9232.png

maplibre为例,按照我们示例服务的地址,为地图应用设置glyphshttp://127.0.0.1:3000/font/{fontstack}/{range}后,对于maplibre要额外为地图实例设置localIdeographFontFamily参数为false,接着按照symbol型图层参数配置要求设置好text-font等参数即可。

目录
相关文章
|
缓存 JavaScript 前端开发
mapbox没有token/token失效,地图闪烁后变空白,报错Error: A valid Mapbox access token is required to use Mapbox GL JS.
本博客介绍了mapbox如何去除token验证,暴力破解mapbox的token验证机制。一劳永逸解决mapbox地图闪现一下然后变成空白,报错Error: A valid Mapbox access token is required to use Mapbox GL JS.的方法,还介绍了类似问题的具体解决思路。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
存储 Devops Shell
Supercharge Your DevOps: A Guide to GitHub Container Registry (GHCR.io)
GitHub Container Registry(GHCR.io)是 GitHub 提供的容器镜像托管服务,支持 Docker 和 OCI 镜像。它与 GitHub 生态深度集成,提供细粒度权限控制、高性能 CI/CD 支持、多架构镜像管理及成本优势。开发者可直接在 GitHub 平台上构建、存储和部署容器,提升 DevOps 效率并简化流程。
1486 1
|
人工智能 数据可视化 API
AI Agents Loop异步执行可视化Tutorial 借助AgentBoard工具可视化工作流
本文介绍了AI Agent的异步执行循环(Agent Loop),并展示了如何利用开源框架agentboard可视化这一过程。通过分析不同框架(如AutoGen、LangGraph、AutoAgent)对Agent Loop的抽象,文章详细说明了从简单的功能调用到复杂的多阶段执行流程的设计。此外,还提供了使用agentboard进行日志记录与流程可视化的具体示例,包括安装步骤、代码实现及运行方法,帮助开发者更高效地调试和优化AI Agent的应用。
AI Agents Loop异步执行可视化Tutorial 借助AgentBoard工具可视化工作流
|
Web App开发 缓存 JavaScript
如何排查 Electron V8 引发的内存 OOM 问题(中)
如何排查 Electron V8 引发的内存 OOM 问题(中)
2628 0
|
前端开发 流计算
css:text-decoration给文字增加上划线、删除线、下划线
css:text-decoration给文字增加上划线、删除线、下划线
3741 0
css:text-decoration给文字增加上划线、删除线、下划线
|
存储 人工智能 大数据
拼多多详情API的价值与应用解析
拼多多作为中国电商市场的重要参与者,其开放平台提供的商品详情API接口为电商行业带来了新的机遇和挑战。该接口允许开发者通过编程方式获取商品的详细信息,包括标题、价格、描述、图片、规格参数和库存等,推动了电商运营的智能化和高效化。本文将深入解析拼多多详情API的价值与应用,帮助商家和开发者更好地理解和利用这一宝贵资源。
922 0
|
机器学习/深度学习 数据采集 人工智能
【AI在金融科技中的应用】详细介绍人工智能在金融分析、风险管理、智能投顾等方面的最新应用和发展趋势
人工智能(AI)在金融领域的应用日益广泛,对金融分析、风险管理和智能投顾等方面产生了深远影响。以下是这些领域的最新应用和发展趋势的详细介绍
2141 1
|
JSON API 数据格式
QQ音乐的各种相关API
  QQ音乐的各种相关API 分类: oc2014-01-29 15:34 2676人阅读 评论(2) 收藏 举报 基本上论坛里做在线音乐的都在用百度的API,进来发现百度的API不仅歌曲的质量不可以保证,而且返回信息里面只有URL,没有一些相关的属性信息。
2352 0
QQ音乐的各种相关API
|
缓存 JSON 关系型数据库
四、Flask 视图使用方法详细概述
四、Flask 视图使用方法详细概述
435 0

热门文章

最新文章