可伸缩图标与文字底板
具备 commonLineSymbols 的匹配开发SDK还支持共同二维沿线图文:真实逐字弯线路径、目标归属、图文组合及共同预算。下文早期点符号范围与尚待沿线事项,应按此有限子集理解;复杂整形、倾斜/球面/地形与完整道路拼接仍待完成。
当前开发 SDK 0.3.0-dev.87035c71 通过同一公开脚本24项、21实际阶段的Linux原生、网页主线程与Worker验收。
支持图片的 stretchX/stretchY/content 与 textFitWidth/textFitHeight 元数据;共同点符号使用 icon-text-fit 的 none/width/height/both 模式和四边 padding。内容区域按实际字体成形后的文字边界计算;固定段与伸缩段使用实际 UV 分块,保持边角厚度。碰撞和命中查询使用最终接受的文字与图标几何。
这些接口只参考公开规范,地图引擎与网格算法独立实现。所有新增参数与预算均以最终冻结合同为准;未知值、超限和非法材料组合明确拒绝并保留旧地图。此项不等于完整符号布局、沿线文字、移动 GIS、设备或正式发布完成。
运行时通过 (await map.sqs.getCapabilities()).commonIconTextFitStretch 探测,使用这些属性前须核对匹配 SDK 的能力。
完整验收脚本使用自造24×24 PNG、A字形PBF及promoteId点MVT,localhost3305为本机实际截图屏障。三种真实文字参考图分别核对自造PBF的字形边界;UV判据检查固定4px边角和多区间8px内部固定段,不镜像新网格算法。
未提供伸缩元数据时查询省略字段;显式字段为独立深冻结副本;同尺寸更新仅换像素。fit选中轴按实际glyph quad并集及CSS padding计算,不加atlas留白或用advance估尺寸;icon-size只作用于固定段/未适配轴,offset只应用一次。textFit枚举仅约束both,双proportional以高度优先;两官方非对称组合应用内容比例下限,其余组合精确适配。图片、字形、来源和样式候选预算及异步到达原子规则仍有效。GUI/外机/设备、沿线文字、完整其它样式/DEM和正式发行仍待完成。
每张图片每轴最多8个互不重叠伸缩区间,最多289个纹理分块;文字、普通图标与分块共同使用65536个四边形、16384个符号原点和100万次碰撞工作预算。padding每边0..128 CSS像素。动态图片回调暂不提供。
// panel is a 24 × 24 RGBA image.
map.addImage("panel", panel, {
stretchX: [[4, 20]],
stretchY: [[4, 20]],
content: [4, 4, 20, 20]
});
map.addLayer({
id: "labels", type: "symbol", source: "places",
layout: {
"icon-image": "panel", "icon-text-fit": "both",
"icon-text-fit-padding": [3, 7, 5, 11],
"text-field": ["get", "name"], "text-size": 24
}
});