我使用的是纯背景,而不是使用 MapBox 样式,按照这个答案
var map = new mapboxgl.Map({
container: 'map',
style: {
version: 8,
sources: {},
layers: [
{
id: 'background',
type: 'background',
paint: {'background-color': 'white'}
}
]
}
});
我添加了一个
GeoJSON
点图层,我正在尝试对其进行标记:
'layout': {
'text-field': ['get', 'name'],
'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'],
},
如果我对地图使用标准 MapBox 样式,则图层会被正确标记。但如果我使用前面提到的空白底图,该图层会返回错误:
使用“文本字段”需要样式“字形”属性
搜索这个错误信息表明我需要添加一个
glyphs
选项:
"glyphs":"mapbox://fonts/mapbox/{fontstack}/{range}.pbf"
或 "glyphs":"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf"
但是,这些选项都无法阻止错误消息,并且该图层不会被标记。
使用空底图时,
glyphs
参数的正确语法是什么?
我将其复制到我的样式选项中,当我之前遇到与您相同的错误时,它运行良好,没有错误:
{
"version": 8,
"name": "Empty",
"metadata": {
"mapbox:autocomposite": true
},
"glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf",
"sources": {},
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "rgba(0,0,0,0)"
}
}
]
}
https://github.com/mapbox/mapbox-gl-styles/blob/master/styles/empty-v8.json
当我不小心尝试将地图样式设置为
undefined
时,我遇到了此错误。当我修复错误并提供合法的 mapbox://
样式 URL 时,问题就消失了。