C1——cesium初始地图旋转

需求:页面初始化地球旋转,鼠标点击后停止旋转。我这不管点击地图还是页面任何地方都会停止

方法:参数传true旋转,传false停止旋转。不要太快了会脑壳昏

viewer.clock.multiplier = 100;//背景转速值越大越快

var delta = (currentTime - previousTime) / 5000;// 5000是地球转速,值越小转越快

// 调用旋转
earthRotation(true);

// 页面点击停止旋转
$("body").mousedown(function (event) {
    earthRotation(false);
});


// 地球旋转事件
function earthRotation(rotation){
    viewer.clock.multiplier = 100;//背景转速值越大越快
    viewer.clock.shouldAnimate = true;
    let previousTime = viewer.clock.currentTime.secondsOfDay;

    function onTickCallback() {
        var spinRate = 1;
        var currentTime = viewer.clock.currentTime.secondsOfDay;
        var delta = (currentTime - previousTime) / 5000;// 5000是地球转速,值越小转越快
        previousTime = currentTime;
        viewer.scene.camera.rotate(Cesium.Cartesian3.UNIT_Z, -spinRate * delta);
    }

    //监听点击事件(不然点击到Titus上他不停止旋转)
    var handlerEarthRotation = new Cesium.ScreenSpaceEventHandler( viewer.scene.canvas);
    handlerEarthRotation.setInputAction(function (click) {
        viewer.clock.shouldAnimate = false;
        viewer.clock.onTick.removeEventListener(onTickCallback);
        handlerEarthRotation.destroy();
    }, Cesium.ScreenSpaceEventType.LEFT_DOWN);

    if (rotation == true) {
        viewer.clock.onTick.addEventListener(onTickCallback);
    } else {
        viewer.clock.shouldAnimate = false;
       viewer.clock.onTick.removeEventListener(onTickCallback);
    }
}

 

你可能感兴趣的:(cesium)