我正在使用 Mapbox GL JS (v2.8.0) 以编程方式将样式图层添加到我的地图中,并且我正在尝试使用通过 Mapbox Studio 上传到我的地图的一组字体。
我目前在我的样式层代码中有这个:
const layer = {
id: this.getLayerId(),
type: 'symbol',
layout: {
'text-field': ['get', 'name'],
'text-font': [
"Chakra Petch Italic", // My custom font inside Mapbox
"Arial Unicode MS Regular" // Fallback font
]
},
paint: {
'text-color': '#ffffff',
}
}
但是,在渲染我的地图时,我在尝试获取我的字体时遇到了 404 错误。
它正在尝试从以下 url 获取字体:
https://api.mapbox.com/fonts/v1/mapbox/Chakra%20Petch%20Italic,Arial%20Unicode%20MS%20Regular/0-255.pbf?access_token={access_token}
而且我相信这里的问题是,而不是/mapbox/
当/{username}/
我在浏览器中转到以下网址时:
https://api.mapbox.com/fonts/v1/{username}/Chakra%20Petch%20Italic,Arial%20Unicode%20MS%20Regular/0-255.pbf?access_token={access_token}
我正确地得到了.pbf
数据。
我如何能够指定它应该在我的样式层 json 中查看我的用户名,而不是公共 mapbox 用户?
此外,作为测试,如果我在 Mapbox Studio 中创建一个简单的层 - 并设置一个标签以使用自定义字体,在 devtools 的 Network 选项卡中,我可以看到它使用上面的用户名 url 获取字体。不幸的是,该标签的 Studio 中的“代码检查器”显示了与我的代码中相同的两个字符串数组。
您需要设置glyphs
样式的属性:
}, glyphs: 'mapbox://fonts/yourusername/{fontstack}/{range}.pbf'
}
更多信息:https ://docs.mapbox.com/mapbox-gl-js/style-spec/glyphs/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句