在Cesium中,动态旋转罗盘在经过360时会向后重置为0

时间:2017-06-06 08:06:58

标签: javascript css cesium

我有这个简单的代码来设置指南针图标的动画,以反映Cesium中相机的当前方向,每当我经过360度时,指南针向左旋转以重置为0,而不是旋转。代码如下:

viewer.camera.changed.addEventListener(rotateCompass);
viewer.camera.moveEnd.addEventListener(rotateCompass);

function rotateCompass() {
    document.getElementById('compass').style.transform = 
        `rotate(-${viewer.camera.heading}rad)`;
}

1 个答案:

答案 0 :(得分:1)

找到一个解决方案,将监听器绑定到viewer.clock.onTick而不是在摄像机上更改自身。罗盘现在只用一个听众和一个功能就可以很好地反映出相机的标题:

viewer.clock.onTick.addEventListener(rotateCompass);

function rotateCompass() {
    compass.style.transform = `rotate(${viewer.camera.heading}rad)`;
}