From adfe4fca297b659a072ce5c9ba998cb1dd7d5ed9 Mon Sep 17 00:00:00 2001 From: fukunee Date: Sat, 19 Sep 2026 16:45:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=B3=E9=94=AEtilt=E5=9B=9E=E6=AD=A3?= =?UTF-8?q?=E6=94=B9=E4=B8=BAflyTo=E6=B8=90=E5=8F=98=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/scene/CesiumGlobe.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/scene/CesiumGlobe.js b/src/scene/CesiumGlobe.js index f38124a..bf3911d 100644 --- a/src/scene/CesiumGlobe.js +++ b/src/scene/CesiumGlobe.js @@ -371,6 +371,7 @@ export class CesiumGlobe { this._rightRestore = null; handler.setInputAction(() => { + camera.cancelFlight(); // 取消可能仍在进行的回正动画 this._rightRestore = { position: Cesium.Cartesian3.clone(camera.position), direction: Cesium.Cartesian3.clone(camera.direction), @@ -384,9 +385,11 @@ export class CesiumGlobe { this._rightRestore = null; const tiltState = scene.screenSpaceCameraController._lastInertiaTiltMovement; if (tiltState) tiltState.inertiaEnabled = false; - camera.setView({ + // 回正改用 flyTo 渐变,而不是瞬间 setView + camera.flyTo({ destination: s.position, orientation: { direction: s.direction, up: s.up }, + duration: 0.5, }); }, Cesium.ScreenSpaceEventType.RIGHT_UP);