05-ground-pipeline-camera-composition.md 2.4 KB

# 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)
  • 是否允许在管线视图里继续用同一套三键契约

行业筛选是全局过滤,不是相机模式。

Answer

地面/管线视图是全局视图条件,同时驱动相机预设与图层可见性:

  • 相机预设:地面视图用常规俯视;管线视图压低弹簧臂、加大 pitch,并把 pitch 下限放宽到允许平视或轻微仰视。
  • 图层可见性:管线视图把管线图层提到可见,并把地形与 3D Tiles 压成半透明或线框,保留空间参照而不完全隐藏。地面视图还原倾角并隐藏地下内容。
  • 不采用「靠剖面或掀盖露出管线」的方案;那属于 Three.js 局部增强(实现票 23),不在本视图定义内。

对 ADR 0008 相机契约的影响:三键分工完全不变。左键仍平移、右键仍绕中心旋转、滚轮仍只改弹簧臂长度;管线视图只放宽 pitch 范围,不新增第二套鼠标绑定。

对 ADR 0004 旋转中心的影响:切换视图不重置中心。沿用 Spring-arm orbit pivot,中心仍是选中对象地表点或地面拾取点。不把中心下沉到「管线埋深」——埋深是逐管段属性,不存在单一深度。

状态归属:地面/管线视图放进 filterStore,与行业筛选同属全局范围条件;uiStore 只持有 mode 与 expandedPanelIds。该视图状态全局共用且切一级模式不重置,与 Mode and panel-expand state ownership 的「切模式不重置全局筛选」一致。不采用「每个一级模式各记一份视图状态」。

同时修正 ADR 0001 的措辞:原文把地面/管线写成「相机模式」,应表述为「全局视图条件(驱动相机预设与图层可见性)」。