feat/vtk-3d-view #7

Merged
gaozheng merged 301 commits from feat/vtk-3d-view into main 2026-06-27 18:43:52 +08:00
1 changed files with 11 additions and 3 deletions
Showing only changes of commit 67f767d787 - Show all commits

View File

@ -4,6 +4,7 @@
#include <cmath>
#include <cstring>
#include <QDebug>
#include <QImage>
#include <QNetworkReply>
#include <QNetworkRequest>
@ -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);
});
}