diff --git a/src/scene/CesiumGlobe.js b/src/scene/CesiumGlobe.js index 581a595..4a6bde8 100644 --- a/src/scene/CesiumGlobe.js +++ b/src/scene/CesiumGlobe.js @@ -390,6 +390,17 @@ export class CesiumGlobe { }; handler.setInputAction((movement) => { + // 取消左键旋转/缩放/倾斜的惯性余力,避免右键拖动时叠加成“又转又倾斜” + const ctrl = scene.screenSpaceCameraController; + const inertiaStates = [ + '_lastInertiaSpinMovement', + '_lastInertiaZoomMovement', + '_lastInertiaTiltMovement', + ]; + for (let i = 0; i < inertiaStates.length; i++) { + const st = ctrl[inertiaStates[i]]; + if (st) st.inertiaEnabled = false; + } // 旋转中心 = 相机当前注视的屏幕中心点(地形表面),而不是点击点 const canvas = scene.canvas; const center = Cesium.Cartesian2.fromElements(