发布时间:2026/7/13 19:17:04
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/7/14 16:10:16

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

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

2026/7/13 17:52:52

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

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

2026/7/14 18:16:18

Langfuse在LLM应用中的可观测性实践与优化

1. Langfuse与AI应用可观测性基础在构建基于大语言模型(LLM)的应用时,开发者面临一个关键挑战:如何全面追踪和调试模型的行为?传统日志系统难以捕捉LLM调用链路的完整上下文,这正是Langfuse这类可观测性平台的价值所在。作为开源A…

2026/7/14 18:16:18

澳大利亚工党能否守住AI版权底线?艺术家与科技公司的角力

澳大利亚的人工智能版权之争正愈演愈烈。以OpenAI为代表的AI科技公司正积极游说,希望放宽澳大利亚现行版权法规,以便在训练大语言模型时能够更自由地使用受版权保护的创作内容。然而,这一诉求激起了艺术家群体的强烈反弹,也在执政…

2026/7/14 18:16:18

t分布彻底讲透:自由度、小样本假设检验与Python实战

1. 项目概述:为什么你总在假设检验里撞上“t”这个字母?如果你做过哪怕一次A/B测试、哪怕一次学生实验数据的均值比较,或者翻过任何一本统计学入门书的后半部分,你一定见过那个带尾巴的、比正态分布更“胖”的钟形曲线——它叫t分…

2026/7/14 18:16:18

微软押注自研AI模型,剑指生成式AI成本削减

据彭博社报道,微软计划加大对自研AI模型的投入力度,以降低生成式AI的运营成本。目前,微软已开始在Word和Excel等产品中,使用旗下自研MAI模型处理部分用户的AI请求,不再完全依赖OpenAI和Anthropic的第三方模型。尽管微软…

2026/7/14 18:16:18

蓝牙5.4 LE Audio与STM32低功耗音频方案解析

1. 项目背景与硬件选型解析 在无线音频传输领域,Bluetooth 5.4标准带来的LE Audio特性正在重塑行业格局。IDC777-1蓝牙模块与STM32L021K4微控制器的组合,为开发者提供了一个兼顾高性能与低功耗的解决方案。这套方案特别适合需要长时间运行的便携式音频设…

2026/7/14 12:47:32

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/13 14:26:14

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/13 18:07:53

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/14 0:04:21

5分钟掌握足球PBR材质制作:Photoshop与Unity高效工作流

1. 项目概述:为什么是足球PBR材质?在游戏开发,尤其是体育竞技类游戏的制作中,一个看起来“对味”的足球,往往比我们想象中更重要。它不仅是赛场上的核心道具,更是玩家视觉焦点和沉浸感的重要来源。一个塑料…

2026/7/14 0:04:21

ChatGPT联网搜索失败,92%开发者误判为网络问题——真实根因竟是LLM推理会话上下文污染导致Search Agent进程静默退出(含strace复现脚本)

更多请点击: https://intelliparadigm.com 第一章:ChatGPT 联网搜索失败 当 ChatGPT 的联网搜索功能无法正常工作时,用户常遇到“搜索不可用”“未连接到互联网”或空白响应等现象。该问题并非模型本身缺陷,而是由权限配置、网络…

2026/7/14 12:47:31

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…