From 67f767d787fb24411c1a6e7ee9398c752cc05f9b Mon Sep 17 00:00:00 2001 From: gaozheng Date: Wed, 17 Jun 2026 09:56:12 +0800 Subject: [PATCH] =?UTF-8?q?fix(vtk):=20DEM=E7=93=A6=E7=89=87=E6=94=B9https?= =?UTF-8?q?(S3=E5=AF=B9http=E8=BF=94=E5=9B=9E403,=E5=AE=9E=E6=B5=8B)+?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E6=89=93=E6=97=A5=E5=BF=97=E4=BE=BF=E4=BA=8E?= =?UTF-8?q?=E8=AF=8A=E6=96=ADSSL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/TileBasemap.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/app/TileBasemap.cpp b/src/app/TileBasemap.cpp index 534e9e5..671b115 100644 --- a/src/app/TileBasemap.cpp +++ b/src/app/TileBasemap.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include #include @@ -281,8 +282,9 @@ void TileBasemap::placeTile(long long key, int z, int x, int y, const QImage& im void TileBasemap::fetchTerrain(int z, int x, int y, long long key) { if (z > kDemMaxZoom) return; // 高层级无 DEM → 维持平面 if (terrainInFlight_.count(key)) return; + // 必须 https:该 S3 桶对纯 http 返回 403(实测)。 const QString url = - QStringLiteral("http://s3.amazonaws.com/elevation-tiles-prod/terrarium/%1/%2/%3.png") + QStringLiteral("https://s3.amazonaws.com/elevation-tiles-prod/terrarium/%1/%2/%3.png") .arg(z) .arg(x) .arg(y); @@ -294,9 +296,15 @@ void TileBasemap::fetchTerrain(int z, int x, int y, long long key) { terrainInFlight_.erase(key); if (gen != generation_ || kind_ != Satellite) return; if (placed_.find(key) == placed_.end()) return; // 平面块已被清理 - if (reply->error() != QNetworkReply::NoError) return; + if (reply->error() != QNetworkReply::NoError) { + qWarning() << "[basemap] DEM 拉取失败" << reply->url().toString() << reply->errorString(); + return; + } QImage dem; - if (!dem.loadFromData(reply->readAll())) return; + if (!dem.loadFromData(reply->readAll())) { + qWarning() << "[basemap] DEM 解码失败" << reply->url().toString(); + return; + } applyTerrain(key, z, x, y, dem); }); }