From b2740898f6be9c57abbfd53c9ef0e4d9d2baa2e9 Mon Sep 17 00:00:00 2001 From: gaozheng Date: Tue, 16 Jun 2026 20:41:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(vtk):=20parseInversionGrid=20=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=20lat/lon,=E5=BC=AF=E6=9B=B2=E6=B5=8B=E7=BA=BF?= =?UTF-8?q?=E6=B8=B2=E6=9F=93=E4=B8=BA=E6=9B=B2=E9=9D=A2=E5=B8=98=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 之前丢弃经纬度→所有剖面退化成 y=0 平面。解析后 CurtainActor 经 GeoLocalFrame 按真实测线摆位: 37/136 弯曲测线→曲面帘面,直线/无geo→平面(正确)。 --- src/data/dto/DatasetChartDto.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/data/dto/DatasetChartDto.cpp b/src/data/dto/DatasetChartDto.cpp index 5bc6ead..a977d1b 100644 --- a/src/data/dto/DatasetChartDto.cpp +++ b/src/data/dto/DatasetChartDto.cpp @@ -19,6 +19,10 @@ Grid parseInversionGrid(const QJsonObject& data) { Grid g(nx < 1 ? 1 : nx, ny < 1 ? 1 : ny); g.x.clear(); for (auto e : x) g.x.push_back(num(e)); g.y.clear(); for (auto e : y) g.y.push_back(num(e)); + // 经纬度(每列 [nx]):供 CurtainActor 经 GeoLocalFrame 把每列摆到真实测线位置—— + // 弯曲测线 → 曲面帘面(不解析则 lat/lon 空、退化成 y=0 平面)。API 字段 lat/lon。 + g.lat.clear(); for (auto e : data.value("lat").toArray()) g.lat.push_back(num(e)); + g.lon.clear(); for (auto e : data.value("lon").toArray()) g.lon.push_back(num(e)); if (v.size() != ny) // 服务端 v 行数与 y 不符:下方越界处填 NaN,记录便于排查(非静默)。 qWarning("parseInversionGrid: v rows=%d != ny=%d (缺失行将填 NaN)", v.size(), ny); for (int j = 0; j < ny; ++j) {