字体源
Martin 可以根据 MapLibre 文本渲染的需要从 otf、ttf 和 ttc 字体提供字形范围。Martin 会动态即时生成它们。
字形范围生成会被缓存,此缓存的大小可以通过配置文件中的 fonts.cache_size_mb 进行配置。
API
字体范围可用于单个字体或多个字体的组合。字体名称区分大小写,应与目录中发布的字体文件中的字体名称匹配。确保对字体名称进行 URL 转义,因为它们通常包含空格。
| 字体请求 | |
|---|---|
| 模式 | /font/{name}/{start}-{end} |
| 示例 | /font/Overpass%20Mono%20Bold/0-255 |
组合字体请求
组合多个字体时,如果第一个列出的字体中有可用的字形,则字形范围将包含该字形,如果第一个字体中没有该字形,则回退到下一个字体,依此类推。如果所有字体都不包含该字形,则字形范围将为空。
| 带回退的组合字体请求 | |
|---|---|
| 模式 | /font/{name1},…,{nameN}/{start}-{end} |
| 示例 | /font/Overpass%20Mono%20Bold,Overpass%20Mono%20Light/0-255 |
目录
Martin 将在 /catalog 端点显示所有可用字体。
curl http://127.0.0.1:3000/catalog
{
"fonts": {
"Overpass Mono Bold": {
"family": "Overpass Mono",
"style": "Bold",
"glyphs": 931,
"start": 0,
"end": 64258
},
"Overpass Mono Light": {
"family": "Overpass Mono",
"style": "Light",
"glyphs": 931,
"start": 0,
"end": 64258
},
"Overpass Mono SemiBold": {
"family": "Overpass Mono",
"style": "SemiBold",
"glyphs": 931,
"start": 0,
"end": 64258
}
}
}
从 CLI 使用
可以使用一个或多个 --font 参数从 CLI 配置字体文件或目录。
martin --font /path/to/font/file.ttf --font /path/to/font_dir
从配置文件配置
可以使用 fonts 键从配置文件配置字体目录。
# 字体配置
fonts:
# *.otf、*.ttf 和 *.ttc 字体文件和目录的列表,递归搜索。
- /path/to/font/file.ttf
- /path/to/font_dir