发布时间:2026/6/16 17:58:22
MapLibre GL JS第53课:用Web字体样式化标签
学习目标掌握用Web字体样式化标签的实现方法理解相关API的使用能够独立完成类似功能开发 核心概念将Web字体应用到样式的文本标签。 完 整 代 码代码示例!DOCTYPEhtmlhtmllangenheadtitleStyle labels with Web fonts/titlemetapropertyog:descriptioncontentApply Web fonts to your style’s text labels. Unlike signed distance field (SDF) glyph sets, Web fonts are available from a variety of providers, or your can make your own using popular tools. This option is suitable for fonts that are only available through a third-party content delivery network (CDN) for technical or legal reasons, as well as fonts that are incompatible with SDF, such as variable fonts. For compatibility with Android and iOS applications, specify equivalent fonts in the style’s font-faces property.metapropertyog:createdcontent2025-10-31/metacharsetutf-8metanameviewportcontentwidthdevice-width, initial-scale1linkrelstylesheethrefhttps://unpkg.com/maplibre-gl5.24.0/dist/maplibre-gl.cssscriptsrchttps://unpkg.com/maplibre-gl5.24.0/dist/maplibre-gl.js/scriptlinkrelpreconnecthrefhttps://fonts.googleapis.comlinkrelpreconnecthrefhttps://fonts.gstatic.comcrossoriginlinkhrefhttps://fonts.googleapis.com/css2?familyRampartOneamp;displayswaprelstylesheetstylebody{margin:0;padding:0;}html, body, #map{height:100%;}/style/headbodydividmap/divscriptdocument.fonts.load(24px Rampart One);constmapnewmaplibregl.Map({container:map,zoom:9,center:[137.9150899566626,36.25956997955441],style:{version:8,sources:{satellite:{type:raster,tiles:[https://tiles.maps.eox.at/wmts/1.0.0/s2cloudless-2020_3857/default/g/{z}/{y}/{x}.jpg],tileSize:256},places:{type:geojson,data:{type:FeatureCollection,features:[{type:Feature,properties:{name:Azumino},geometry:{type:Point,coordinates:[137.9054972,36.3044083]}},{type:Feature,properties:{name:Matsumoto},geometry:{type:Point,coordinates:[137.9687141,36.2382047]}}]}}},layers:[{id:satellite,type:raster,source:satellite},{id:places,type:symbol,source:places,layout:{text-font:[Rampart One],text-size:24,text-field:[get,name]},paint:{text-color:white}}]}});/script/body/html 代码解析1. 初始化地图使用new maplibregl.Map()创建地图实例配置了卫星影像底图和GeoJSON点数据源。关键点在于通过内联样式对象配置地图而非使用外部样式URL。2. 关键配置项document.fonts.load(): 预先加载Web字体确保字体在地图渲染前可用text-font: 指定使用的Web字体名称如Rampart Onetext-field: 使用表达式[get, name]从GeoJSON属性中获取标签文本text-color: 设置标签颜色为白色与卫星底图形成对比⚙️ 参数说明参数类型必填说明text-fontarray是指定字体名称数组支持回退机制text-sizenumber是标签字体大小像素text-fieldexpression是定义标签显示内容的表达式text-colorstring否标签颜色默认黑色 效果说明运行代码后地图显示日本松本市和安曇野市区域的卫星影像底图在两个标记点上方显示白色的地名标签字体使用Google Fonts提供的Rampart One字体呈现独特的手写风格。 常 见 问 题Q1: Web字体显示为默认字体怎么办A:检查以下几点确认已在HTML中引入字体链接如Google Fonts的link标签使用document.fonts.load()确保字体加载完成后再渲染检查字体名称是否正确注意大小写敏感Q2: Web字体在移动端不显示A:某些移动浏览器对Web字体支持有限建议在style的font-faces属性中指定fallback字体考虑使用系统字体作为备选使用font-display: swap提高加载体验Q3: 如何确保字体加载性能A:使用document.fonts.readyPromise等待字体加载完成document.fonts.ready.then((){// 字体已加载初始化地图}); 练习任务基础练习尝试更换为其他Google Fonts字体如Roboto、Open Sans进阶挑战添加多个不同字体的标签层展示字体效果差异拓展思考如何实现根据缩放级别动态切换字体大小综合实践创建一个支持中英文双语标签的地图使用不同字体 最佳实践字体预加载: 使用document.fonts.load()或font-display: swap避免FOITFlash of Invisible Text字体回退: 在text-font数组中按优先级排列多个字体确保兼容性跨平台兼容: 为Android和iOS应用在style的font-faces中指定等效字体性能优化: 只加载必要的字重和字符集减少字体文件大小对比度保证: 标签颜色与底图要有足够对比度确保可读性 延伸阅读Map API文档MapLibre GL JS 官方文档[下一课预告]将继续学习地图图层的基础知识

相关新闻

手把手教你构建企业级RAG智慧问答系统:融合MySQL关键词检索与Milvus语义检索的完整实践
2026/6/16 17:58:22

手把手教你构建企业级RAG智慧问答系统:融合MySQL关键词检索与Milvus语义检索的完整实践

手把手教你构建企业级RAG智慧问答系统:融合MySQL关键词检索与Milvus语义检索的完整实践本文基于传智教育EduRAG项目,深入剖析一个完整的RAG(检索增强生成)智慧问答系统的设计与实现。系统采用两级检索架构:第一级BM25关…

阅读更多
十、网络客户端工具curl, wget, ssh, scp, sftp, rsync
2026/6/16 17:58:22

十、网络客户端工具curl, wget, ssh, scp, sftp, rsync

目录 一、curl – 多功能网络传输工具 1.1 基本概念 1.2 常用选项与用法 1.2.1 查看网页内容 1.2.2 查看 HTTP 响应头(不下载正文) 1.2.3 跟随重定向 1.2.4 使用代理 1.2.5 保存网页/文件到本地 1.2.6 断点续传 1.2.7 限速下载 1.2.8 FTP 操作…

阅读更多
Python struct模块与二进制数据解析
2026/6/16 16:58:22

Python struct模块与二进制数据解析

Python struct模块与二进制数据解析struct模块在Python值和C结构体之间转换字节。pack将Python值打包为字节,unpack将字节解包为Python值。import struct# 打包:整数42打包为大端序4字节有符号整数 packed struct.pack(>i, 42) print(packed) # b\x0…

阅读更多
从“复制链接→打开APP“到“一键解析“:我做了个短视频去水印工具
2026/6/16 17:58:22

从“复制链接→打开APP“到“一键解析“:我做了个短视频去水印工具

一、为什么要做这个工具? 不知道你有没有遇到过这种情况:刷抖音/快手看到一个有意思的视频,想保存下来分享给朋友,结果点分享后要么是"复制链接",要么保存的视频带个大大的水印,还有平台 logo&a…

阅读更多
Path of Building PoE2:流放之路2玩家的终极角色构建实验室
2026/6/16 17:58:22

Path of Building PoE2:流放之路2玩家的终极角色构建实验室

Path of Building PoE2:流放之路2玩家的终极角色构建实验室 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 当《流放之路2》的复杂天赋系统让无数玩家望而却步时,一个开源工具正在…

阅读更多
MapLibre GL JS第53课:用Web字体样式化标签
2026/6/16 17:58:22

MapLibre GL JS第53课:用Web字体样式化标签

&#x1f4cc; 学习目标 掌握用Web字体样式化标签的实现方法理解相关API的使用能够独立完成类似功能开发 &#x1f3af; 核心概念 将Web字体应用到样式的文本标签。 &#x1f4bb; 完 整 代 码 代码示例 <!DOCTYPE html> <html lang"en"> <head…

阅读更多
手把手教你构建企业级RAG智慧问答系统:融合MySQL关键词检索与Milvus语义检索的完整实践
2026/6/16 17:58:22

手把手教你构建企业级RAG智慧问答系统:融合MySQL关键词检索与Milvus语义检索的完整实践

手把手教你构建企业级RAG智慧问答系统&#xff1a;融合MySQL关键词检索与Milvus语义检索的完整实践本文基于传智教育EduRAG项目&#xff0c;深入剖析一个完整的RAG&#xff08;检索增强生成&#xff09;智慧问答系统的设计与实现。系统采用两级检索架构&#xff1a;第一级BM25关…

阅读更多
十、网络客户端工具curl, wget, ssh, scp, sftp, rsync
2026/6/16 17:58:22

十、网络客户端工具curl, wget, ssh, scp, sftp, rsync

目录 一、curl – 多功能网络传输工具 1.1 基本概念 1.2 常用选项与用法 1.2.1 查看网页内容 1.2.2 查看 HTTP 响应头&#xff08;不下载正文&#xff09; 1.2.3 跟随重定向 1.2.4 使用代理 1.2.5 保存网页/文件到本地 1.2.6 断点续传 1.2.7 限速下载 1.2.8 FTP 操作…

阅读更多
Python struct模块与二进制数据解析
2026/6/16 16:58:22

Python struct模块与二进制数据解析

Python struct模块与二进制数据解析struct模块在Python值和C结构体之间转换字节。pack将Python值打包为字节&#xff0c;unpack将字节解包为Python值。import struct# 打包&#xff1a;整数42打包为大端序4字节有符号整数 packed struct.pack(>i, 42) print(packed) # b\x0…

阅读更多
别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)
2026/6/16 18:17:55

别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)

超越BERT&#xff1a;用Transformers库高效实现文本相似度计算的三种实战方案在自然语言处理领域&#xff0c;文本相似度计算是信息检索、问答系统和推荐系统等应用的核心技术。传统方法如TF-IDF或Word2Vec已逐渐被基于Transformer的预训练模型所取代。Hugging Face的Transform…

阅读更多
Prompt Engineering:重构人机协作的工程化方法论
2026/6/14 0:57:30

Prompt Engineering:重构人机协作的工程化方法论

1. 项目概述&#xff1a;这不是“写提示词”&#xff0c;而是重构人机协作的底层逻辑“Prompt Engineering”这个词&#xff0c;这两年被讲得太多&#xff0c;也太轻飘。很多人把它理解成“给AI发指令的技巧”&#xff0c;甚至简化为“多加几个形容词”“换种说法再试一次”。我…

阅读更多
Anthropic提示层归零:模型即协议的工程实践
2026/6/16 0:39:53

Anthropic提示层归零:模型即协议的工程实践

1. 项目概述&#xff1a;这不是一次普通更新&#xff0c;而是一次架构级“蒸发”“Anthropic Just Shipped the Layer That’s Already Going to Zero”——这个标题一出来&#xff0c;我正在调试一个Claude调用链的终端前停了三秒。不是因为震惊&#xff0c;而是因为熟悉&…

阅读更多
2026 AI简历编辑平台深度测评与使用教程:ATS扫描、JD匹配、多版本投递怎么选?(首推 OfferGoose)
2026/6/16 0:57:58

2026 AI简历编辑平台深度测评与使用教程:ATS扫描、JD匹配、多版本投递怎么选?(首推 OfferGoose)

&#xff08;先给结论&#xff0c;节省时间&#xff09; 只想最快把简历“拉到及格线更贴JD”&#xff1a;优先从 鹅来面 开始——先做简历评分与岗位匹配度&#xff0c;再按建议改一版可投递稿。投递量很大、需要职位管理&#xff1a;偏向 Teal&#xff08;职位追踪 多份简历…

阅读更多
Java毕业设计-面向学生竞赛的团队组建与信息管控系统设计 SpringBoot 架构下高校竞赛团队管理系统的设计与实践(源码+LW+部署文档+全bao+远程调试+代码讲解等)
2026/6/16 0:57:58

Java毕业设计-面向学生竞赛的团队组建与信息管控系统设计 SpringBoot 架构下高校竞赛团队管理系统的设计与实践(源码+LW+部署文档+全bao+远程调试+代码讲解等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

阅读更多
Windows内存清理终极指南:Mem Reduct让你的电脑告别卡顿的简单方法
2026/6/16 0:57:58

Windows内存清理终极指南:Mem Reduct让你的电脑告别卡顿的简单方法

Windows内存清理终极指南&#xff1a;Mem Reduct让你的电脑告别卡顿的简单方法 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memre…

阅读更多
GIT修改用户名
2026/6/16 5:55:51

GIT修改用户名

在GIT中修改用户名可按以下步骤操作&#xff1a; 查看当前git的用户名&#xff0c;使用命令git config --list或git config user.name。修改git用户名&#xff0c;使用命令git config --global user.name "xxx&#xff08;新的用户名&#xff09;"&#xff0c;将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/16 16:55:24

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat&#xff1a;让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/15 21:13:35

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析&#xff1a;m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多