直接上干货
import * as Cesium from 'cesium';
let flag = false;
let longtitude = 360;
let lattitude = 0;
let height = 20000000;
function rotateEarth(viewer: Cesium.Viewer) {
let rotateListener = (clock: Cesium.Clock) => {
if (longtitude == 0) {
longtitude = 360;
}
longtitude += 0.2;
viewer.camera.setView({
destination: Cesium.Cartesian3.fromDegrees(longtitude, lattitude, height),
});
};
let handleRotate = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
let handleleft = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handleRotate.setInputAction((event: Cesium.ScreenSpaceEventHandler.PositionedEvent) => {
flag = !flag;
if (flag) {
viewer.clock.onTick.addEventListener(rotateListener);
} else {
viewer.clock.onTick.removeEventListener(rotateListener);
flag = false;
}
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
handleleft.setInputAction((event: Cesium.ScreenSpaceEventHandler.PositionedEvent) => {
console.log(event);
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
handleleft.destroy();
}
export default rotateEarth;