【问题原因】
iClient3D for Cesium 在对地球进行缩放,默认会根据鼠标摆放的位置来判断当前缩放的中心点位置。
【解决方法】
在camera中存在放大缩小的方法 zoomIn(amount), 并不会改变球体的位置。只对球体进行放大缩小。可以参考下方代码。
viewer.screenSpaceEventHandler.setInputAction((movement) => {
const height = viewer.scene.camera.positionCartographic.height;
const Amount = Cesium.Math.sign(movement) * height / Math.log(height);
if (!isNaN(Amount)) {
viewer.scene.camera.zoomIn(Amount);
}
}, Cesium.ScreenSpaceEventType.WHEEL);