创建自定义字形和精灵以与 Mapbox 一起使用

Geo*_*org 5 mapbox

我想自行托管我的矢量地图。我正在使用一些自定义字体和一些自定义图标。

当我在 Mapbox Studio 中创建样式并稍后将其导出时,我的样式文件中将包含以下两行:

"sprite": "mapbox://sprites/<user>/<token>/<token>",
"glyphs": "mapbox://fonts/<user>/{fontstack}/{range}.pbf",
Run Code Online (Sandbox Code Playgroud)

我现在的问题是如何自己创建这些文件?我有一个包含我.svg和我的.ttf文件的文件夹。但我现在如何将它们转换成我需要的格式呢?

我尝试了https://github.com/openmaptiles/fonts来获取字形部分,但无法运行。然后我找到了https://github.com/mapbox/glyph-pbf-composite但不明白它应该如何工作。

Jef*_*f S 5

简单的方法是:

  1. 将 svgs 和字体添加到 MapBox 样式中
  2. 在浏览器中打开测试地图
  3. 使用浏览器的开发工具检查网络调用。查找获取精灵和字形文件的调用
  4. 在新的浏览器选项卡中打开这些 URL 并保存下载的文件

否则,如果您想在不使用 MapBox Studio 的情况下生成文件:

您将使用两个实用程序作为https://openmaptiles.org/docs/style/mapbox-gl-style-spec/中的说明中的概述

Sprite 文件生成:SpriteZero CLI - https://github.com/mapbox/spritezero-cli

字形文件生成:genfontgl - https://github.com/openmaptiles/genfontgl

最后,在定义文件路径时,即使您没有使用它们,您仍然需要字形路径中的标记。所以像

"glyphs": "/data/myfonts.pbf?{fontstack}{range}",
Run Code Online (Sandbox Code Playgroud)