跳到主要内容

富文本段垂直对齐

按所属行对齐不同字号的文本段,并保留整体碰撞与查询范围

具备 commonLineSymbols 的匹配开发SDK还支持共同二维沿线图文:真实逐字弯线路径、目标归属、图文组合及共同预算。下文早期点符号范围与尚待沿线事项,应按此有限子集理解;复杂整形、倾斜/球面/地形与完整道路拼接仍待完成。

共同点文字的 format 段支持 vertical-align: 'top' | 'center' | 'bottom',默认 bottom。换行后,各段按所属行的最大字号em框对齐:top 向上移动全部字号差,center 移动一半,bottom 保持既有共同基线。不同字符的笔画形状不同,对齐字号行框不表示笔画像素边缘必定相同。

map.setLayoutProperty('formatted', 'text-field', ['format',
  'AA', {'font-scale': 1.5, 'text-color': 'red'},
  'BB', {
    'font-scale': 0.5, 'text-color': 'blue',
    'vertical-align': 'top'
  }
]);
await map.sqs.flush({render: true});

以上操作已有的 formatted 点文字图层;基础图源和图层设置见分段富文本标注。vertical-align 也可用返回这三个字符串之一的共同表达式,包括词法变量与分支。布局缩放仍按整数级别计算,原文字/段数/字号/字形/表达式预算保持。

所有段共享整体锚点、偏移、旋转和碰撞框。真实移动后的字形范围参与查询;换行后的每行独立选择参考高度,比例为0的段不会影响对齐。省略选项与显式 bottom 的原画面保持一致,普通字符串布局不变。调用方指定过小或零行高时仍可能出现行间重叠。

能力 commonFormattedTextVerticalAlign 表示该共同路径可用。未知枚举或错误动态类型明确拒绝,失败更新保留旧标签与画面。段内字体栈已接通PBF路径;注册RGBA图片段已接通;SDF图片段、字体文件、复杂文字整形、沿线和三维组合继续待实现。语义参考 MapLibre format规范,本项目自行实现,不表示所有格式能力已经兼容。

完整可复制脚本见portable-format-align.js,独立网页见formatted-align-check.html。最终标签使用大红字与小绿/蓝/橙字,分别展示顶端/底端/居中对齐。