Status: resolved Labels: wayfinder:map
本 effort 只产出决策,不实现功能(Q6=(a))。实现票在本图收口后接进 .scratch/cockpit-shell-panel-layout/issues/ 的 30 之后。
把「进入沅陵县城主场景区之后」的三件事锁成可实现契约,让 agent 不必再发明语义:
目的地达成的判据:每张子票都有明确答案,且答案之间的数值互相自洽 —— 限位数值、雾气门控、过渡曲线引用同一个主场景区定义与同一套视距基准。
/cockpit。词汇以 CONTEXT.md 为准。CONTEXT.md、docs/adr/0001–0008、src/modules/cockpit/domain/camera.js、domain/viewPresets.js、domain/viewModes.js、domain/mapLayers.js、services/cesiumEngine.js、services/cameraControl.js、public/cockpit/config.json,以及 .scratch/cockpit-shell-panel-layout/issues/21、30。cesium@1.145.0;唯一 import 'cesium' 在 services/cesiumEngine.js;目前零自定义 shader、零 post-process 级、零 fog/atmosphere 配置 —— 但 scene.fog 默认 enabled: true(默认密度在县城尺度几乎不可见)。.scratch/cockpit-shell-panel-layout/issues/ 30 之后(Q6=(a)+(c))。open/claimed/resolved,不套 triage 五标签。AGENTS.md,改代码后不自动跑 build/dev。Blocked by: 字段行为准。[110.328749941417, 28.3917230659234, 110.465779226663, 28.4913038992907]([west, south, east, north],13.4 km × 11.0 km,147.6 km²)。01 已 resolved(2026-09-18):兜底改为「部署期准备候选值+运行时未配置则关闭」;候选值公式=影像 bounds ∩ DEM valid_bounds 的 B,围绕 map.home 经纬度(=进入系统默认位置=归位位置)每边折半。原“内置兜底自动得到 B 收紧 50%”不再适用,详见 01 的 Answer。cockpit-shell-panel-layout 的 30 之后(Q6=(a)+(c))。fov = 60° 是水平视场角,fovy = 2·atan(tan(30°)/aspect)。同一预算下 range 上限随画布宽高比浮动约 2×:aspect 1:1 → 1,430 m;4:3 → 1,906 m;16:9 → 2,542 m(均为正俯视口径)。02 已定:运行时按真实 fovY 反算 range_max = 1651 / (2·tan(fovY/2)),不写死基准。pitch −55, range 12000 的垂直覆盖约 9.5 km ≈ 主场景区 N-S 的 86%,是上述预算的 5.8× —— 与票 30 的"12 km 是县域级"直接冲突,03 必须处置。research/cesium-ground-fog-mechanisms.md。research/overlay-rectangle-pop-mechanisms.md。research/three-fog-shader-reuse.md;甲方裁定废止深度互通备选。map.primaryArea 只设 bounds([W,S,E,N] 度,与 map.overlays[].bounds 同口径);配置必须写归一化顺序,运行时校验 west<east/south<north、不自动翻转,非法即记配置问题并进入关闭路径;兜底=部署期计算候选值(B = 影像 bounds ∩ DEM valid_bounds,围绕 map.home 经纬度=进入系统默认位置=归位位置、每边折半)写入同一字段,运行时未配置就关闭依赖主场景区的限位与自建雾并如实报浮标 —— 原「内置兜底自动得 B 收紧 50%」作废;契约不含数据越界校验(配置即权威);本部署显式值仍为甲方框定县城范围。primaryArea.bounds(01);range ∈ [120, range_max],range_max = 1651 / (2·tan(fovY/2))(取运行时真实 fovY,随画布 aspect 变:1:1→1,430 / 4:3→1,906 / 16:9→2,542 m);正俯视只提供参考基准值,pitch 不参与收紧;「垂直覆盖」度量=屏幕竖直方向地面跨度,只在正俯视定义;02 只保正俯视 ≤15%,侧视露出的范围外由 07 雾遮盖;相机离地高度 h = range·sin|pitch|(h_max 被 range_max 隐式罩住);防入地=地形感知下限(h ≥ 正下方地形 + 10 m,margin 暂定可微调,不足时夹 range,机制落 03)。⚠️ 其 range_max 锚点(2,542 m)已被 03 取代(12,000 m = home.range),限位数值以 03 / ADR 0009 为准。range_max = home.range = 12,000 m(最远视野 = 归位默认视角,取代 02 的 2,542 m 与"15% 垂直覆盖预算");显式模式锁(进入系统/归位进、返回全球出,判定与位置无关);全球态闲置 5 秒回初始态(自转 + 闪烁「点击进入系统」),不重置模式/筛选;区内管线视图 range ∈ [400, min(6000, range_max)] = [400, 6,000](因 range_max>6000,与现状一致,冲突消解);边界软回弹(target.pivot 越出 ≤ 框短边 5% ≈ 550 m,松手阻尼弹回);返回全球目标=初始全景(h0/p−60/r 2×10⁷);areaState: 'locked'|'global' 进 filterStore(与 viewMode 同层),mapService 转移、cameraControl 换 limits(setRangeLimits 与 setPitchLimits 对称)、CockpitShell 管 5 秒计时与引导页显隐;intro.enabled=false 按 global 启动;防入地继承 02(三处夹取交集);ADR 0009 已建、ADR 0008 已补指向。scene.fog 的密度由相机高度反算并乘 1−|dot(朝向,上)|,正俯视归零、半径随高度漂移,当不了稳定视距限制;引擎无现成雾/霾后处理级,但 PostProcessStage 默认就带 depthTexture,自建 depth 雾可行(Context.depthTexture 运行时存在但不在随包 d.ts 里;06 更正:它实为布尔能力标志,非纹理对象)。step() 硬切,引擎零羽化、零交叉淡入;配置里的 minimumLevel: 0 是空操作(等于 provider 默认),精细层并非"近了才加载";跳变有两类(首批瓦片整体出现 + 地形 LOD 牵着影像逐级换挡);ImageryLayer.alpha 只是整层 uniform,ImageryLayer.rectangle 只读。06: 调研 —— Three.js 雾 shader 可复用面与 Cesium 深度互通可行性 — Three haze 的密度曲线与闭式光深积分是纯数学,可搬进 Cesium PostProcessStage;太阳耦合全在颜色项,常量雾色即可剥离;默认密度的距离估算仅适用于原研究的特定高度假设;旧 1,651 m 预算及倍率推导已失效,现行参数以雾规格最终决策为准。「Cesium 深度喂给 Three」评级极难(Context.depthTexture 仅是布尔能力标志、纹理不可跨 context、社区实测俯视遮挡错乱、且须推翻 ADR 0004)—— 甲方裁定废止该备选,雾锁定单一 Cesium 渲染器走路线 B。
视距雾气的实现规格 — 采用 B 地物距离雾及原型默认参数;提前准备/撤除与影像交接协调,异常时业务可用优先;按决策范围收口,进入遮挡失败记录、透明场景检查和 ≤15% P95 验收仍归下游原型/实施,不表示运行验收通过。
08: 低精度 → 高精度过渡的解法 — 维护者在实际场景基本验收「藏精细影像 → 雾保护 → 渐显影像;返回反向交接」。正式实施需让进出雾变换稍快、采用冷白灰且不发绿、返回时镜头高度与雾气模糊同步变化并保持影像保护。原型决策通过不等于生产全程零跳变或 ≤15% P95 已达标。
docs/cockpit-deployment.md 新增 2.9 节(顺序是硬要求 + 三种浮标读数对照表 + 矩形怎么定),
运行期读数为引擎浮标 主场景区:… 与宿主 data-map-primary-area(-reason)。雾气本身的可视验收仍归实施票 38。.scratch/cockpit-shell-panel-layout/issues/21)。mode / panelId / 面板语义与布局。8/8 张决策票已 resolved。08:低精度 → 高精度过渡的解法经维护者在真实场景基本验收,方案方向和三条后续实施约束已落票;雾气决策另见07。本图按「锁定可实现的决策」范围收口,不代表原型直接入生产、全程零方块跳变或性能合格。
下一步:按地图约定在 .scratch/cockpit-shell-panel-layout/issues/ 的 30 之后承接正式实现。进出雾速度稍快、冷白灰不发绿、返回高度与雾气同步且边缘持续受保护均须在真实画面复核;另检查目标瓦片、内部 LOD 换级、异常降级、管线可读性及 P95 帧耗时增幅 ≤15%。雾气与相机规格继续分别以spec-fog.md和spec.md为准,新的实施约束以 08 的最终 Answer 优先。
历史 1,651 m 预算及旧雾密度推导不可作现行验收标准;本轮依 AGENTS.md 未运行 build/dev 或浏览器调试。