右键环视旋转中心改为屏幕中心点,消除按下即瞬移

This commit is contained in:
2026-09-19 14:49:54 +08:00
parent 66fac3771d
commit ccd3efde17
+8 -3
View File
@@ -383,9 +383,14 @@ export class CesiumGlobe {
}; };
handler.setInputAction((movement) => { handler.setInputAction((movement) => {
const pivot = // 旋转中心 = 相机当前注视的屏幕中心点(与原生 tilt 一致),
scene.pickPosition(movement.position) || // 而不是点击点:用点击点会导致一拖动就“瞬移”到点击处。
camera.pickEllipsoid(movement.position, scene.globe.ellipsoid); const canvas = scene.canvas;
const center = Cesium.Cartesian2.fromElements(
canvas.clientWidth / 2,
canvas.clientHeight / 2,
);
const pivot = camera.pickEllipsoid(center, scene.globe.ellipsoid);
if (!Cesium.defined(pivot)) return; if (!Cesium.defined(pivot)) return;
const sc = this._orbitScratch; const sc = this._orbitScratch;
const offset = Cesium.Cartesian3.subtract(camera.position, pivot, sc.offset); const offset = Cesium.Cartesian3.subtract(camera.position, pivot, sc.offset);