跳到主要内容

共同样式过渡

目标声明、真实时钟显示与二维播放线的条件范围

本批已完成本机实现及匹配开发SDK验收。能力标识为 commonPaintTransitions;只有匹配的核心与宿主真正提供该能力时才可使用。Windows、macOS、手机设备及正式发布仍须独立验收。

样式的根 transition 配置默认 duration: 300, delay: 0,单位毫秒。单属性 circle-radius-transition 等按字段覆盖根配置:只给duration时delay仍继承根值,反之亦然。两个参数各自必须为有限非负数且不超过 3,600,000(相加可达 7,200,000)。控制参数改变影响后续目标重定向,已开始曲线保留原始起止时刻。首次建立图层或没有旧值时直接显示目标;duration: 0 立即生效。

map.setPaintProperty('marker', 'circle-radius-transition', {duration: 1500, delay: 200});
map.setPaintProperty('marker', 'circle-radius', 30);

getPaintProperty 与 getStyle 返回新的目标声明。实际画面及渲染要素查询使用同一时刻的显示值,过渡中间值不会写回样式。时间缓动是分段三次 ease-in-out;颜色按非预乘的sRGB红、绿、蓝与透明度分别插值,再遵循原有渲染颜色合同。

中途再次改变目标会从当时真实显示继续;旧曲线在其原时钟上继续求值,避免跳回旧声明。兼容的样式差量更新及完全相同的样式更新保留图层、数据源身份、缓存、在途请求与仍有效的时间线。移除图层或替换不兼容的定义终止相应时间线。

仅与要素及feature-state无关的数值、颜色和二维向量目标建立共同过渡。依赖要素或feature-state的目标沿用即时求值;不会为每个要素保存过渡历史。统一的zoom/global-state/词法表达式仍在当前环境求值。

类型可过渡的已实现属性
backgroundcolor、opacity
fillcolor、outline-color、opacity
linecolor、opacity、width、offset、gap-width、blur、translate
circlecolor、stroke-color、radius、stroke-width、blur、opacity、stroke-opacity、translate
symbolicon/text 的color及opacity
rasteropacity、brightness-min/max、saturation、contrast、hue-rotate
heatmapradius、intensity、opacity
hillshadeexaggeration、shadow/highlight/accent-color
color-reliefopacity
fill-extrusioncolor、opacity、height、base

表中省略类型前缀。例如circle的radius是 circle-radius;symbol的颜色为 icon-color、text-color。这些属性仍受各类型原有视图及数据能力限制,表格不额外开放球面、地形或复杂三维组合。

根默认只对表中的交集启用过渡;其它已合法的属性仍即时处理。heatmap-weight、hillshade照明角度、raster-fade-duration、渐变和色带不在本批。dash/pattern及图片切换尚无crossfade,显式启用其非零属性过渡会拒绝;layout、枚举与非零Light过渡也未包含。已有栅格瓦片到达淡入和相机动画各自保留原时钟。

绘制使用宿主单调时钟。活动过渡使生命周期的 animating 为真、loaded() 为假;不会让 isMoving() 把静止相机报告成运动。生命周期读取只观察状态,不推进采样;结束后须真实绘制末帧,才达到idle。

零pitch/roll的墨卡托二维视图可按真实图层顺序合成媒体与已有播放线。播放定义绑定原图层、所属场景和原时钟。正在播放或暂停后保留视觉的同一图层paint改变(含过渡控制参数)返回 CONFLICT;先停止播放解除视觉绑定再修改。已有paint曲线的图层启动播放视觉也返回 CONFLICT。其它图层可独立过渡。动画尚未适配的拓扑、offset/gap/blur/pattern/gradient组合不会由本能力自动开放。

共同过渡最多涉及 128 层、2048 条时间线。中断历史深度最多32、历史JSON节点最多1024;每个表达式叶求值最多8192步,整张过渡表静态上界及实际累计各不超过200万步,词法变量重复求值也计入。

当前与候选历史合计限16MiB。历史成本递归计入JSON载荷、字符串/键、历史及条目结构和映射开销;每个条目另计其结构、128字节保守开销和两倍身份/属性/类型字符串成本。准入要求 2 × 所有条目成本之和 ≤ 16MiB,因此单张已接受表最多8MiB,旧表加任意候选最多16MiB;共享历史也保守重复计费,不截断。目标及显示声明、缓存paint仍计入原图层描述的四份估计及128MiB缓存额度。

原几何、图集、碰撞、64可见瓦片/32在途请求、播放线/图案/渐变联合的32层/4096路径/10万生成顶点/256MiB,以及符号65536quad/64MiB/1024CSS足迹和16384字形历史额度保持有效。实际公开验收与匹配开发交付记录见下文。

实际资源、数据、state、global、样式、相机、视口、图片及字形改变均须经过完整候选检查。提交候选被拒绝时,目标声明、已有时间线、队列和画面保旧。已接受过渡在未来采样时失败则保留已经接受的目标声明,显示及缓存停在最后成功帧,停止该属性的时钟重试,生命周期 failed 为真;中间值和旧声明都不会回写。有效的新paint声明更改或完整样式替换可清失败标志;失败属性必须通过实际新目标重新定向,单改参数或同值no-op不会自动复活。不能让以后某帧偷偷越限。

完整HTML 包含CSS、初始化和渐变/途中改向/立即重置的真实按钮事件,已随匹配开发SDK交付。公共验收只抽取数值、颜色、二维向量、差量更新、state、错误和媒体播放组合;全属性范围由综合核心检查负责,不把少数画面冒充全部属性跨平台验收。

已有circle颜色合同仍保留Native SRGB与浏览器linear UNORM的原始读回差异。跨宿主验收先归一化RGB比较,同时保留原始截图/帧SHA与alpha;不声称整帧原始像素完全相同,也未改变既有着色器。

本批核心 ae8c2773eac948eebd4aa42a5510ca65070d9687,开发SDK 0.3.0-dev.ae8c2773。42条元数据综合CPU通过,最终真实GPU0.55秒(Vulkan/llvmpipe软件适配器,REQUIRE_GPU);同一69项/14阶段脚本在Native、主线程、Worker的DPR1/2实际时钟验收通过,共1126实际帧。独立完整HTML三按钮、六段真实轨迹、原featureID71点击通过(71帧)。代表性公共画面不冒充全部42属性跨宿主GPU矩阵。

归档 SqsMap-SDK-0.3.0-dev.ae8c2773-resumed.tar.gz:609清单文件加bundle.json,37668946字节,SHA256 63db5bd9bc4e73cd153a4718af041188d285097fe1244d52992b42ca9240d3b9;每份文件长度和SHA独立重开归档核对,当前脚本/完整HTML/原创媒体及全部历史资源在包内。Native/core/applicationWASM、AndroidAPI24 ARM64/JNI匹配当前核心;契约签名未改变,复用精确原脚本WASM。网站生产HTTP与四仓Git阶段交付在提交前补齐,设备与正式发布不标完成。