如何在 Mapbox GL JS 中使用自定义字体?

伊姆克拉基

我正在使用 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Mapbox GL JS自定义样式层中使用u_time

无法在Mapbox GL JS中使用自定义标记

如何使用 Mapbox GL JS 显示自定义样式的矢量切片?

Mapbox GL-JS:如何为图标实例添加自定义图像?

如何在 Mapbox GL JS 中使用标准 OpenStreetMap 图块服务器?

如何在Mapbox gl js中使用AWS S3栅格文件?

如何使用flow配置mapbox-gl-js类型?

如何使用Browserify构建mapbox-gl.js?

如何在 Mapbox GL JS 中更改光标图像

如何在Mapbox GL JS的setHtml中设置事件?

使用mapbox-gl-js为要素集中的每个要素添加自定义图标

Mapbox GL JS 使用自定义控件切换图层

mapbox gl js:使用中间渲染步骤作为自定义图层的蒙版

使用数组 Mapbox GL JS 过滤

如何在 mapbox-gl 中自定义集群图标?

如何在 Mapbox Studio / Mapbox GL JS 中限制图标/文本标签密度

Mapbox GL JS与Mapbox.js

初始化后在Vue中使用Mapbox GL JS

在Mapbox GL-JS中使用路线的示例

在Geocoder事件中刷新MapBox GL JS中的自定义线串图层

使用Mapbox gl js将鼠标悬停在自定义标记上添加弹出窗口

Mapbox GL JS:如何使用带有表达式的 JavaScript 来更改图层布局?

Mapbox GL Popup使用自定义标签设置内容

Mapbox GL JS getBounds()/ fitBounds()

Mapbox GL-JS:如何更新标记位置?

如何获取mapbox-gl-js z-buffer

如何从Mapbox GL JS中的样式层获取要素?

如何使Mapbox GL JS弹出窗口作为侧面板打开

如何将 Mapbox js 函数转换为 Mapbox gl js