mapbox加载自定义字体

本文介绍了如何使用Mapbox加载大字体文件的pbf格式,以及在遇到中文显示问题时,通过调整`localIdeographFontFamily`属性来加载自定义字体的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、创建字体格式pbf

字体文件(ttf/otf)一般比较大,在网页中加载比较耗时。mapbox加载的字体是经过处理的pbf格式。pbf格式文件是基于Google的Protocol Buffer协议进行组织,是一种二进制文件。Mapbox的矢量瓦片、字体都是采用这种数据结构进行存储、压缩的。

详细步骤,参考大佬文章:制作.pbf字体

二、样式中修改

map.addLayer({
  id: 'cluster-count',
  type: 'symbol',
  source: 'earthquakes',
  filter: ['has', 'point_count'],
  layout: {
    "text-field": "这就是我想要的字体啦",
    'text-font': ['DIN Offc Pro Medium', 'Arial Unicode MS Bold'],
    'text-size': 18
  }
});

其中,“text-font”就是我们加载的字体名称,但是发现网页加载的中文字体并不如人所愿,还是默认的字体,这个时候让我们打开官方文档,一探究竟。mapbox 官方文档

大致意思就是:mapbox为了避免带宽密集型字形服务器请求,所以定义了一个字体库,覆盖“中日韩统一象形文字”。localIdeographFontFamily的默认值为'sans-serif',我们只需在地图初始化的时候将此选项的值改为空,即可正常加载我们的字体库字体啦

map = new mapboxgl.Map({
  container: "mapContainer",
  style: style,
  localIdeographFontFamily:''
});

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值