From 4fb7bb1e524c80a7af8e34264bbad00cfa0d88ff Mon Sep 17 00:00:00 2001 From: gaozheng Date: Wed, 17 Jun 2026 18:30:21 +0800 Subject: [PATCH] =?UTF-8?q?docs(vtk):=20=E6=9B=B4=E6=96=B0z/=E9=AB=98?= =?UTF-8?q?=E7=A8=8B=E8=AF=AD=E4=B9=89=E6=96=87=E6=A1=A3-=E5=8E=9F?= =?UTF-8?q?=E7=89=88data.y=3D=E9=AB=98=E7=A8=8B=E5=B7=B2=E9=83=A8=E5=88=86?= =?UTF-8?q?=E8=A7=A3=E7=AD=94;=E8=AE=B0=E5=BD=95=E5=BD=93=E5=89=8Dz=3D+y?= =?UTF-8?q?=E4=B8=BA=E8=BF=91=E4=BC=BC,=E8=B7=A8=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86y=E4=B8=8D=E4=B8=80=E8=87=B4=E9=A3=8E=E9=99=A9?= =?UTF-8?q?=E5=8F=8Aalt=E5=9C=B0=E8=A1=A8=E8=B4=B4=E5=90=88=E7=9A=84?= =?UTF-8?q?=E7=A8=B3=E5=A6=A5=E5=81=9A=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...演剖面竖向字段(y-z-elevation)语义待确认.md | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/docs/questions/2026-06-16-反演剖面竖向字段(y-z-elevation)语义待确认.md b/docs/questions/2026-06-16-反演剖面竖向字段(y-z-elevation)语义待确认.md index a7a3e57..c0f986e 100644 --- a/docs/questions/2026-06-16-反演剖面竖向字段(y-z-elevation)语义待确认.md +++ b/docs/questions/2026-06-16-反演剖面竖向字段(y-z-elevation)语义待确认.md @@ -40,11 +40,11 @@ --- -## 3. 客户端当前做法(供确认/纠正) +## 3. 客户端做法演变 -- 竖直坐标用 **`y` 作深度**:每个格子 Z = `-y[j]`(深度向下取负),**未使用 `z` 和 `elevation`**。 -- 这与**二维"数据详情"反演图一致**(详情图 `ContourPlotItem` 也只用 `x`、`y` 画"距离 × 深度"矩形,不用 `z`/`elevation`)。 -- 即:3D 帘面 = 二维"距离×深度"剖面**立起来 + 沿真实测线(lat/lon)弯曲**,**平顶**、不随地表起伏。 +- **早期(已废弃)**:竖直 Z = `-y[j]`(把 `y` 当"深度向下"),平顶、不随地表。加真实地形底图后暴露问题:剖面整体沉到地下。 +- **当前(2026-06-17)**:竖直 Z = `+y[j]`(把 `y` 当**真实高程**),与同样按真实高程渲染的地形底图同系对齐 → 剖面顶≈地表、露出地面(复刻原版观感)。详见 §6。 +- 仍**未使用 `z` 和 `alt/elevation`**。 --- @@ -66,3 +66,19 @@ - 现状 (A) 已能正确渲染(与 2D 详情一致),可继续使用。 - 若业务要 (B) 地形跟随,需上面第 2/3/4 项的明确定义后,客户端按真实竖向模型实现(避免凭猜测导致渲染错误)。 + +--- + +## 6. 进展(2026-06-17):原版 web 代码已部分解答,但仍有跨数据集风险 + +拿到原版 `commercial-admin` 代码(`dataView/threeMap/threeMap.vue` `addEntityToMap`)后确认其做法: +- **`data.y` = 真实高程**(不是深度)。原版 `originY = data.y[0]`、`localY = data.y - originY`(相对形状),剖面世界 Z = `originY + localY = data.y`,并用 **`alt`(测线每点地表高程)** 算坡度/地表偏移;地形用 Mapbox 真实 DEM。两者同在真实高程系 → 剖面顶≈地表、露出地面。 +- **无垂直夸张**(`scale.y = 1`,真实比例)。 + +**客户端据此已改为 Z = `+y`(§3 当前)**,对 `y ≈ 真实高程` 的数据集(如射洪 `y`≈`elevation`≈287~353)对齐良好。 + +**⚠️ 仍未解决:§2 表中 `y` 跨数据集不一致**——香港 `T120526003-3`(`y`=13~26 但 `elevation`=41~51,差 ~28m)、演示 `ERT1-WS`(`y`=9.8~26.7 但 `elevation`=36~38,差 ~10~26m)这类,`y` 并不等于真实地表高程。对它们,仅用 `+y` 会让剖面整体偏离地表一个常量。 + +**稳妥的完整做法(= 原版)**:取 `alt`(测线每点地表高程)把剖面**顶部贴到地表**,`data.y` 只决定相对形状/深度跨度。即 `Z(列i, 行j) = altSurface(i) - (data.y[top] - data.y[j])`(或等价:用 alt 定地表、y 定相对位置)。这需要客户端**解析并使用 `alt`/`elevation` 字段**(当前未取)。 + +**待办**:客户端拉取 `alt`(或 `elevation`),按"地表 alt + y 相对形状"摆放剖面,消除跨数据集垂直偏移。在此之前,`+y` 是对 `y≈高程` 数据集成立的近似。