发布时间:2026/8/22 15:59:55
MapLibre GL JS第52课:显示和样式化富文本标签 学习目标掌握显示和样式化富文本标签的实现方法理解相关API的使用能够独立完成类似功能开发 核心概念显示和样式化富文本标签。 完 整 代 码代码示例!DOCTYPEhtmlhtmllangenheadtitleDisplay and style rich text labels/titlemetapropertyog:descriptioncontent使用 format 表达式以英文和当地语言显示国家标签。/metapropertyog:createdcontent2023-06-27/metacharsetutf-8metanameviewportcontentwidthdevice-width, initial-scale1linkrelstylesheethrefhttps://unpkg.com/maplibre-gl5.24.0/dist/maplibre-gl.css/scriptsrchttps://unpkg.com/maplibre-gl5.24.0/dist/maplibre-gl.js/scriptstylebody{margin:0;padding:0;}html, body, #map{height:100%;}/style/headbody!-- The lang attribute is read from the map container if present, otherwise from the HTML document --dividmaplangzh-HK/divscriptmaplibregl.setRTLTextPlugin(https://unpkg.com/mapbox/mapbox-gl-rtl-text0.3.0/dist/mapbox-gl-rtl-text.js);constmapnewmaplibregl.Map({container:map,// 容器IDstyle:https://tiles.openfreemap.org/styles/bright,// 样式URLcenter:[17.49,40.01],// 初始位置 [经度, 纬度]zoom:4// 初始缩放级别});map.on(load,(){map.setLayoutProperty(label_country,text-field,[format,[get,name_en],{font-scale:1.2},\n,{},[get,name],{font-scale:0.8,text-font:[literal,[Noto Sans Regular]]}]);});/script/body/html 代码解析初始化地图使用new maplibregl.Map()创建地图实例配置基本参数。本示例的核心特色是展示如何使用format表达式创建富文本标签同时显示英文和当地语言名称。加载 RTL 插件maplibregl.setRTLTextPlugin(https://unpkg.com/mapbox/mapbox-gl-rtl-text0.3.0/dist/mapbox-gl-rtl-text.js);关键配置项container: 地图容器的 DOM 元素 IDstyle: 使用 OpenStreetMap 亮色样式https://tiles.openfreemap.org/styles/brightcenter: 地图初始中心点[17.49, 40.01]巴尔干半岛区域zoom: 初始缩放级别为 4显示区域级别视图format 表达式配置map.setLayoutProperty(label_country,text-field,[format,[get,name_en],// 第一部分英文名称{font-scale:1.2},// 英文名称样式放大1.2倍\n,// 换行符{},// 换行符不需要样式[get,name],// 第二部分当地语言名称{font-scale:0.8,// 当地语言样式缩小0.8倍text-font:[literal,[Noto Sans Regular]]}]);⚙️ 参数说明参数类型必填默认值说明containerstring是-地图容器元素的 IDstylestring/object是-地图样式 URL 或内联样式对象center[number, number]否[0, 0]初始中心点坐标zoomnumber否0初始缩放级别format 表达式参数类型说明textexpression要显示的文本内容optionsobject文本样式选项文本样式选项属性类型说明font-scalenumber字体缩放比例text-fontarray字体名称数组text-colorstring文本颜色text-halo-colorstring文本光晕颜色text-halo-widthnumber文本光晕宽度 效果说明运行代码后地图上的国家标签会以双行富文本形式显示第一行: 英文名称放大1.2倍第二行: 当地语言名称缩小0.8倍使用 Noto Sans 字体示例: 国家标签显示为 “Italy” 在上方意大利文 “Italia” 在下方视觉效果:英文名称更大更突出当地语言名称作为补充信息支持 RTL从右到左语言如阿拉伯语、希伯来语 常 见 问 题Q1: format 表达式是什么A:format表达式允许创建富文本标签支持多行文本和不同样式的组合。每个文本片段都可以有独立的样式设置。Q2: 为什么需要 RTL 插件A:RTLRight-to-Left插件支持从右到左书写的语言如阿拉伯语、希伯来语等确保这些语言正确显示。Q3: 如何添加更多文本样式A:在format表达式中添加更多的文本和样式对象对[format,[get,name],{font-scale:1.2},\n,{},[get,capital],{font-scale:0.8,text-color:#888}]Q4: 可以使用哪些字体A:可以使用样式中定义的字体或通过text-font属性指定字体。建议使用支持多语言的字体如 Noto Sans。 练习任务基础练习修改字体大小比例调整中英文名称的显示效果进阶挑战添加第三行文本显示国家首都拓展思考如何根据国家属性动态改变文本颜色 最佳实践字体选择: 使用支持多语言的字体如 Noto Sans确保各种语言正确显示样式层次: 主文本使用较大字体辅助信息使用较小字体RTL 支持: 加载 RTL 插件支持从右到左的语言性能考虑: 避免过多的文本样式组合影响渲染性能可读性: 确保文本颜色与背景有足够对比度语言属性: 使用lang属性帮助浏览器正确处理文本方向 延伸阅读Map API文档MapLibre GL JS 官方文档[下一课预告]将继续学习地图图层的基础知识

相关新闻

2026/8/22 10:29:16

J302βγ盖格计数管:精准可靠的核辐射检测核心设备

J302βγ是一款高性能复合型盖格计数管,也是民用与工业级核辐射检测仪的核心传感元器件,专门针对β射线、γ射线检测研发,凭借稳定的探测性能、宽泛的工况适配性,成为核辐射监测设备的主流核心配件,广泛应用于各类便携…

2026/8/22 11:33:31

AI工程化简报:面向开发者的技术决策指南

1. 这是一份真正“能用”的AI资讯简报,不是信息噪音收集器我做AI领域内容整理和实操分享已经七年多,从GPT-3刚发布时手动抄录每篇论文摘要,到后来搭自动化爬虫抓取arXiv更新,再到去年开始系统性测试各类AI原生通讯工具——踩过太多…

2026/8/22 20:26:01

校招实习内推全攻略:从简历到面试的实战技巧

1. 校招实习内推全景解析作为经历过数十次招聘季的职场老兵,我完整经历过从求职者到面试官的身份转变。每当秋招春招季来临,总能看到同学们在"校招-实习-内推"这个铁三角迷宫里反复碰壁。今天就用最直白的行业黑话翻译,带你看透这套…

2026/8/22 20:26:01

数学建模竞赛实战指南:从问题分析到代码实现的全流程解析

1. 从“思路”到“代码”:一个建模竞赛老手的实战复盘又到了一年一度的全国大学生数学建模竞赛季,看着论坛和群里不断刷新的“求思路”、“求代码”帖子,我仿佛看到了十年前的自己。那时候,我也曾为拿到一个题目后大脑一片空白而焦…

2026/8/22 20:26:01

企业级AI编程实战:一周掌握Vibe Coding与多工具集成

在实际企业级项目开发中,如何将AI编程助手从“玩具”转变为“生产力工具”,是许多开发者面临的共同挑战。单纯地使用AI生成代码片段,与将其深度集成到团队的工作流、编码规范、测试和部署流程中,是完全不同的两件事。Vibe Coding作…

2026/8/22 20:26:01

Mac系统Maven环境搭建全攻略:从JDK配置到IDE集成与避坑指南

1. 项目概述:为什么Mac上的Maven环境搭建值得你花时间? 如果你是一名在Mac上进行Java或后端开发的工程师,那么Maven绝对是你绕不开的一个工具。它远不止是一个构建工具,更像是一个项目管家,帮你管理依赖、编译代码、运…

2026/8/22 20:21:01

Synergy:下一代通用智能体如何构建开放协作的AI生态

1. 项目概述:下一代通用智能体的新范式最近在AI社区里,关于“智能体”的讨论热度一直居高不下。从年初的AutoGPT到后来的Devin,再到各种垂直领域的工具,大家似乎都在探索一个核心问题:如何让AI不仅能回答问题&#xff…

2026/8/21 13:13:49

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 20:14:07

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 15:40:01

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/21 15:40:01

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/22 1:39:53

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…