# Ground and pipeline view composition with camera contract Type: grilling Status: resolved Labels: wayfinder:grilling Blocked by: 04 ## 进度:100% 已关闭。地面/管线视图 = 全局视图条件,同时驱动相机预设与图层可见性;中心不重置、三键契约不变;状态归 `filterStore`。 ## Question 地面视图和管线视图如何叠到已锁定的左键平移、右键旋转、滚轮伸缩,而不再引入一套 Cesium 默认相机? 需要决定: - 地面/管线是改变弹簧臂目标高度/倾角的预设,还是切换图层并顺带改相机 - 切换视图时是否重置旋转中心(依赖 [Spring-arm orbit pivot](04-spring-arm-orbit-pivot.md)) - 是否允许在管线视图里继续用同一套三键契约 行业筛选是全局过滤,不是相机模式。 ## Answer 地面/管线视图是**全局视图条件**,同时驱动相机预设与图层可见性: - 相机预设:地面视图用常规俯视;管线视图压低弹簧臂、加大 pitch,并把 pitch 下限放宽到允许平视或轻微仰视。 - 图层可见性:管线视图把管线图层提到可见,并把地形与 3D Tiles **压成半透明或线框**,保留空间参照而不完全隐藏。地面视图还原倾角并隐藏地下内容。 - 不采用「靠剖面或掀盖露出管线」的方案;那属于 Three.js 局部增强(实现票 23),不在本视图定义内。 对 ADR 0008 相机契约的影响:**三键分工完全不变**。左键仍平移、右键仍绕中心旋转、滚轮仍只改弹簧臂长度;管线视图只放宽 pitch 范围,不新增第二套鼠标绑定。 对 ADR 0004 旋转中心的影响:**切换视图不重置中心**。沿用 [Spring-arm orbit pivot](04-spring-arm-orbit-pivot.md),中心仍是选中对象地表点或地面拾取点。不把中心下沉到「管线埋深」——埋深是逐管段属性,不存在单一深度。 状态归属:地面/管线视图放进 `filterStore`,与行业筛选同属全局范围条件;`uiStore` 只持有 `mode` 与 `expandedPanelIds`。该视图状态**全局共用且切一级模式不重置**,与 [Mode and panel-expand state ownership](01-mode-and-expand-state-ownership.md) 的「切模式不重置全局筛选」一致。不采用「每个一级模式各记一份视图状态」。 同时修正 ADR 0001 的措辞:原文把地面/管线写成「相机模式」,应表述为「全局视图条件(驱动相机预设与图层可见性)」。