# 一级模式的一张图图层可见性与选择态矩阵 Type: grilling Status: resolved Labels: wayfinder:grilling Blocked by: 05 ## 进度:100% 本票由[票 05](05-device-point-layer-trigger-and-lifecycle.md)讨论中提出,并在维护者确认后立案。票 05 已裁决关联监测设备图层的模式可见性与选择态;本票补齐**一张图其他业务对象**的完整矩阵。经两轮 grilling 收口,完整矩阵与五要素已由维护者逐项确认(2026-09-28),见下方 `## Answer`。`resolved` 表示决策完成,**不表示设施点/管线/异常点图层已经实现**:设施点数据契约、管线折线(票 22)、设备级状态契约(票 09/#69)均未交付,本期按「如实降级」执行。 下一步:结论经 `/to-spec` 固化为本 map 的规格子票(等待维护者执行);设施点的拾取/详情/视觉词表另开设施票;实现去向仍是 `.scratch/cockpit-shell-panel-layout/issues/` 34 之后。 ## Question 总体概览希望展示设备、设施、预警报警等所有适用点位;基础设施、运行监测、预警处置则只显示各自相关对象。哪些对象属于各模式、何时仅调整可见性、对象在目标模式隐藏后怎样保留/暂停详情,以及图例和计数如何随模式改变?特别注意“设施”和“监测设备”是不同业务对象,监测点与未关联设备也不得合并为一类。 票 05 的已定边界不在这里重新发明:关联监测设备选中态临时图层在总体概览/运行监测展示全部有效位置设备、基础设施隐藏、预警处置只显示设备自身报警/预警者;总体概览与分项互切保留选择身份,分项之间互切清空选择;Viewer 常驻,切模式不额外换 `snapshotAt`。若完整矩阵出现矛盾,先把冲突带回维护者裁决,不能静默覆盖票 05 或 ADR 0005。 请裁决: 1. 四个一级模式 × 监测点、未关联设备、基础设施与管线、预警/报警事件及其他已实现空间对象的**可见矩阵**。点位状态筛选与设备状态筛选、事件等级各归何处,不用同一个状态词表偷换。 2. 总览显示“全部点位信息”的准确边界:坐标准入不通过的对象仍怎样在相应列表和详情说明;不同图层缺数据时不得伪装为“该模式确实没有对象”。 3. 当前选中对象不属于目标模式时的详情暂停与恢复、镜头保持、图例计数和拾取对象优先级,与票 05 既定选择态怎样合成。 4. 每类图层的真实数据来源、与地图摘要分页关系、失败/过期退化及后续实现票归属。只讨论模式矩阵的必要契约,不承接设施或事件渲染的具体实施。 5. **(2026-09-24 维护者新增,来自票 08 验收)初始地球视图的可见性**:进入引导的最初地球视图**只展示地球整体形态,不展示监测点、设备点位或点位详情**;点击「点击进入系统」、镜头落到主场景后,业务点位才出现。这与本票的模式矩阵是同一个「什么时候显示什么」问题的两个状态(进入前 vs 进入后 + 四模式),本票裁决时需把它与四个一级模式合成一张完整矩阵;实现侧的进入态挂载归 [票 30](../../cockpit-shell-panel-layout/issues/30-intro-gate-and-view-presets.md) 的引导层生命周期。注意与票 05「地图/台账点选均触发定位与设备加载」的衔接:进入前没有可选对象,进入后才谈选择态。 ## Answer ### 目标 把「什么时候显示什么」锁成一张完整矩阵:**引导态 + 四个一级模式** × 一张图的全部业务对象(监测点、未关联设备、关联监测设备图层、设施点、管线折线、事件回联)。只裁决可见性与选择态合成,不承接设施/事件渲染的具体实施。设施与事件**不是独立地图标记图层**——设施走设施点/管线(后续数据契约),事件靠设备编码回联位置(票 14 机制)。 ### 完整矩阵(维护者 2026-09-28 确认) | 状态\对象 | 监测点 | 未关联设备 | 关联设备图层(选中态) | 设施点 | 管线折线 | 事件 | |---|---|---|---|---|---|---| | **引导态**(进入前) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | | **总体概览** | ✓ 全部 | ✓ | ✓ 全部有效(票 05) | ✓ | ✓ | 回联定位 | | **基础设施** | ✗ | ✗ | ✗(票 05) | ✓ | ✓ | 回联定位 | | **运行监测** | ✓ 全部 | ✓ | ✓ 全部有效(票 05) | ✗ | ✓ | 回联定位 | | **预警处置** | 仅异常点 | 仅预警/报警的 | 仅 ALARM/WARNING(票 05) | ✗ | ✓ | 回联定位 | 术语(已同步 `CONTEXT.md`):**设施点**=承载设施(管网、泵站、水厂、水源地、用水户等,各类型后端独立成表)的独立空间对象,与监测点同级、不计入监测点统计;**异常点**=至少一台关联监测设备处于预警/报警状态的监测点,判定以设备状态事实为准(`/monitoring/situation` 的 `abnormalEquipment[]` 回联),不借用监测点聚合状态词表。 ### 决策与选项权衡(逐项) 1. **矩阵行集(Q1)**:只裁真实存在/已立项的对象层。设施与事件不是图层行:事件「不创建独立地图标记」、靠 `deviceCode`/`monitoringPointCode` 回联;设施面板(基础档案/运行信息/管理信息/应急保障)是聚合 KPI 口径、当前后端不给逐设施坐标,设施点需新数据契约。 2. **四模式可见性(Q2+Q11/Q12/Q13)**: - 总体概览=全部适用对象;基础设施=只设施点+管线(监测点/未关联设备/关联设备图层全隐藏);运行监测=全部监测点+未关联设备(设备视角,设施点隐藏);预警处置=仅异常点+预警/报警的未关联设备(设施点隐藏)。 - 关联设备图层按票 05 已锁范围执行(概览/运行监测=全部有效、基础设施=隐藏、预警处置=仅 ALARM/WARNING),本票不重裁。 - **管线折线四模式常驻**(进入后任何模式都不隐藏);「地面/管线视图」是正交的全局呈现条件,只改相机预设与地形/瓦片半透明(现有 `viewModes.js` 行为),不负责隐藏管线层本身。`CONTEXT.md`「管线视图让地下管线可见」按此修订为「让管线呈现更清楚」。 3. **回联定位(Q3+Q10)**:不做模式过滤——目标在图上(坐标准入+已加载)则 `applyViewPreset` 飞过去,不在则不下发飞行(沿用既有 `locateNote` 口径)。基础设施面板条目的回联目标语义是**设施点**(Q10=B);设施数据契约未到位时如实降级「当前模式不显示该对象,无法定位」,不拿监测点坐标冒充设施位置。运行信息/应急保障面板现有 `pointCodes` 回联属监测点口径,等设施契约到位后转设施点。 4. **设施点(Q6+Q7)**:数据源=后端新契约(逐设施坐标);本票只锁「可见/可回联」,**不锁拾取与详情**——设施点的点选、详情、视觉词表整体另开设施票,不为不存在的详情发明选中态。 5. **异常点判定(Q8)**:只认设备状态 **WARNING/ALARM**(`abnormalEquipment[].status`/`abnormalType`),凭快照 `point.deviceCodes` 回联到 owning 点;工单/离线不混入异常点;未关联异常设备直接按坐标画出。`abnormalEquipment` 与 `map-snapshot` 是不同端点 → 沿用票 05「尽力展示并明确提示跨端点不同步」。 6. **异常点视觉(Q15)**:只做可见性过滤、不发明第二个「异常」形状——异常点仍按各自 `pointStatus` 视觉呈现。**备注**:现有三角/菱形等 8 形状是临时视觉,后续替换为监测点图标、用颜色+大小区分状态;这条留给票 09/图例实现票作未来修订线索,本票不承接。 7. **异常未关联设备视觉(C2)**:跟票 07 的 `deviceStatus.js` 设备状态词表(报警/预警专属色形+特效),与同模式关联设备图层同一词表;不沿用 UNASSOCIATED 十字中性色。 8. **图例与计数(Q9+C4)**:只统计**当前模式实际可见**的摘要标记(与票 05 互斥计数一致);图例行随模式变化。设施点/管线无数据时不虚报行,由浮标如实说「设施数据未就绪」;图例行待设施契约与视觉词表到位后在设施票补。 9. **引导态(Q4+Q14)**:矩阵含引导态列=「进入前不展示任何业务对象」。数据可**预取**(进入前就开始拉地图摘要),但一切业务点位显示被门控:标记、图例、点位计数浮标、详情在引导态一律不出现;点「点击进入系统」后才挂载显示,预取数据直接呈现。实现侧进入态挂载归票 30 引导层生命周期。 10. **选择态合成(Q16)**:总体概览 ↔ 任一分项=保留选择身份、目标模式不显示所选对象时暂停详情与关联设备图层、切回且对象仍在当前范围时恢复;分项 ↔ 分项=清空选择。设施点本阶段无选择态。切模式不动相机、不换快照(Viewer 常驻)。全部是票 05 已锁规则的直接外推。 ### 风险与边界 - **数据未就绪(如实降级)**:设施点契约(Q6)、管线折线(票 22)、设备级状态契约(票 09/后端 #69)均未交付 → 本期基础设施模式地图大概率「无设施数据」,预警处置异常点依赖 `abnormalEquipment[]` 且与 `map-snapshot` 跨端点不同步。 - **异常点口径**:只认 WARNING/ALARM,不把工单/离线/监测点聚合状态混入。 - **pointStatus 临时视觉**:不因临时形状承诺最终形态;替换留给票 09/实现票。 - **管线层语义**:四模式常驻 + 管线视图正交呈现,`CONTEXT.md` 已同步。 - **设施问题**:设施点拾取/详情/视觉词表/图例行整体移交新开的设施票,本票不承接。 ### 产物与后续 - `CONTEXT.md` 已新增「**设施点**」「**异常点**」词条(2026-09-28)。 - 结论待 `/to-spec` 固化为本 map 的规格子票(与 14/15/16 同列);实现去向 `.scratch/cockpit-shell-panel-layout/issues/` 34 之后。 - 设施点实施另开票;管线折线实施属票 22;设备级坐标/状态契约属票 09。