跳到主要内容

按要素选择线图案

在同一图层中按道路属性选择RGBA图案,保持要素顺序

当匹配SDK的commonPlanarLayerComposition为true时,墨卡托零pitch/roll、无terrain/extrusion的共同二维画面允许影像、背景、图文、热力及既有静态线面效果按完整图层顺序组合。本文旧阶段关于“媒体组合拒绝”的限制在此共同二维范围内由该能力取代;自定义线动画、倾斜/球面/地形及其它未实现材料组合仍保持各自限制。重排和兼容diff保留身份/缓存/在途请求/淡入时钟;所有素材、联合几何和纹理预算均先验证再发布。参见二维图层合成。

核心已实现并推送e684b18d,3CPU、同一最终实际GPU及WASM检查通过;同一33项公共脚本与真实像素已通过native/main/Worker;匹配开发SDK 0.3.0-dev.e684b18d 已通过全tar成员长度/SHA及23共同脚本核对。能力 commonLinePatternsPerFeature 补齐均匀线图案之外的逐要素选图。图片须先注册;同一个图层可按属性选择道路、施工或其它图案,不必为每种图案拆图层。

import { map } from 'sqsmap';
// Register your decoded RGBA images with map.addImage('road', imageData).
map.addLayer({
  id: 'roads', type: 'line', source: 'roads',
  layout: { 'line-sort-key': ['get', 'priority'] },
  paint: {
    'line-width': 8,
    'line-pattern': ['coalesce',
      ['image', ['get', 'pattern']], ['image', 'road']]
  }
});
await map.sqs.flush({ render: true });

按实际筛选、排序后的要素求值,支持类型、词法惰性、image/coalesce、属性及全局状态,选图的zoom保持整数档。图片缺失时只隐藏该要素;coalesce 可回退到已注册图片,实际尝试的缺图名称产生通知。原source/ID/属性保留,透明图案片段仍是保守几何命中,而全透明或缺图记录不命中。

绘制严格保留A/B/A要素次序,即使材质相同也不跨其它材质合批。整幅图片高度覆盖实际线宽,CSS周期仍为实际线宽×图片宽/高;pixelRatio不改变此比例,DPR保留逻辑尺度。RGBA颜色乘opacity,line-color不染色。图片更新、移除、重加及源/状态/全局/相机写入须完整候选预检,失败保留原状态与画面。

脚本paint feature-state选图是SqsMap共同扩展,将按能力查询使用;当前MapLibre公开line-pattern规范列出了数据驱动选图,但未声明这一feature-state组合。不能把本扩展表述成完整MapLibre兼容。

图片宽2..512的2次幂、高1..512,保持稳定默认butt/miter几何。输入材质和有序记录每层各最多4096;W/H/RGBA完全一致的图片去重。原静态/动画共同32层、4096路径、10万实际生成顶点、256MiB及每路径CSS长度1千万预算保持。每去重纹理按64KiB页上取整,再计48B uniform和256B绑定;每层共享64B sampler、每有序draw记录64B及全部顶点均进合计资源预检。候选累计10万显示记录/200万表达式节点估算,表达式原32层/1024节点/8192步保持。该范围已冻结;公共三路径已通过,匹配开发SDK 0.3.0-dev.e684b18d 已通过全tar成员长度/SHA及23共同脚本核对。SDF、显式拓扑、非零offset/translate/gap/blur、dash/gradient/animation、倾斜/球面/媒体组合尚未接通;MVT跨片相位/拼接仍待完成。

完整共同脚本和完整网页同一33项契约已通过native/main/Worker,用真实蓝/绿/透明画面核对A/B/A顺序与局部缺图。匹配开发SDK已验收;本机生产网站验收记录见本阶段交付证明,移动GIS/iOS/设备/外机、完整样式与正式发行/部署继续待办。

参考MapLibre官方line-pattern规范,由SqsMap独立实现。