线进度与渐变
当匹配SDK的commonPlanarLayerComposition为true时,墨卡托零pitch/roll、无terrain/extrusion的共同二维画面允许影像、背景、图文、热力及既有静态线面效果按完整图层顺序组合。本文旧阶段关于“媒体组合拒绝”的限制在此共同二维范围内由该能力取代;自定义线动画、倾斜/球面/地形及其它未实现材料组合仍保持各自限制。重排和兼容diff保留身份/缓存/在途请求/淡入时钟;所有素材、联合几何和纹理预算均先验证再发布。参见二维图层合成。
核心已实现并推送e62b861d,3CPU/同一最终实际GPU和WASM检查通过;同一完整32项与真实像素已通过native/main/Worker;匹配开发SDK归档已生成并逐文件核对。能力 commonLineGradients 让共同二维GeoJSON线图层使用 line-gradient。源必须显式设置 lineMetrics:true;这与旧原生渐变接口的限定通道分别处理。
import { map } from 'sqsmap';
map.addSource('route', {type: 'geojson', lineMetrics: true,
data: {type: 'Feature', id: 1, properties: {}, geometry: {
type: 'LineString', coordinates: [[116.38,39.9],[116.4,39.9],[116.4,39.92]]
}}
});
map.addLayer({id:'route',type:'line',source:'route',
layout:{'line-cap':'round','line-join':'miter'},
paint:{'line-width':8,'line-opacity':0.7,
'line-gradient':['interpolate',['linear'],['line-progress'],
0,'#0000ff',1,'#00ff00']}
});
await map.sqs.flush({render:true});
设计要求 line-progress 依据原始Mercator路径距离,不随视口裁剪、缩放、平移或DPR重新从0开始。按原MultiLineString部件分别归一为0..1,闭合LineString首0末1,起止颜色可留接缝。已核对官方GeoJSON worker与geojson-vt可观察行为,独立实现而不移植代码。候选色带最多32个step切点/33区间,每非零区间257个RGBA8样本;切点选右区间,独立采样避免跨step混色。既有颜色求值、插值曲线和LAB/HCL保持,区间内线性采样与8位量化存在误差,不宣称逐像素相同。
已同次接通LineString/MultiLineString、合法step/interpolate与颜色/类型/词法惰性/global表达式、动态width/opacity、filter/sort及稳定cap/join/offset/translate。渐变本身不读取要素属性或feature-state;gap/blur、dash/pattern/animation、MVT/3D/globe/media组合尚未接通。色带/纹理、实际顶点和绘制记录必须进入原静态pattern/animation联合额度,全候选色带求值累计最多200万节点估算,原静态pattern/animation联合32层/4096路径/10万实际顶点/256MiB和每路径CSS长度1千万不放宽;最终资源计量已冻结:实际顶点24B,RGBA32Float色带颜色纹理及metadata纹理分别按64KiB页上取整,uniform48B/绑定256B,每路径draw64B,计入联合驻留/候选额度。每路径最多5000原节点,同原feature全部part三角pair稳定性检查最多200万/候选层。
核心3CPU/同一最终GPU通过,原WGSL保留字局部名称错误日志保留,修正后同一用例通过;公共三路径32项与真实像素已通过;匹配开发SDK归档已生成并逐文件核对。移动GIS/iOS/设备/外机、其它样式和正式发行/部署仍未完成。来源为官方line-gradient规范和lineMetrics,SqsMap独立实现,未使用MapLibre代码。
部件与闭环行为依据官方worker及官方GeoJSON转换的可观察合同核对,未使用其代码。
实际表达式域:line-progress只可作为step/interpolate的直接输入,可通过合法let别名引用;其它进度运算或依赖进度的条件硬切暂拒,避免未识别的不连续被色带混合。统一颜色分支、既有曲线/LAB/HCL与词法/global保持。核心该范围已冻结,公共32已通过,匹配开发产物归档已核对。
真实查询保留原source/ID、filter/sort和拓扑/offset/translate保守包络;局部透明仍可命中,全透明色带、width/opacity0不命中。稳定真实拓扑在同原feature及其MultiLine各part间共同检查;自交、反折、不稳定或重叠明确拒绝,不同feature保持正常排序叠加。line-color及其alpha不染色或隐藏gradient。所有source/state/global/paint/camera/viewport/DPR与输出/资源候选完整预检,失败保留旧状态、帧、队列和身份;旧原生effects渐变API独立保留。
当前开发归档 SqsMap-SDK-0.3.0-dev.e62b861d-resumed.tar.gz:555清单文件加bundle.json,36815454字节,SHA-256 0ebfea63108b1988ab43f1c07c7a62d7bf62c523cf5c5286b0df2ebd856137bc。全部成员长度/SHA与24近期共同脚本逐字节核对通过;不等于正式发行或设备验收。