我有这个简单的代码来设置指南针图标的动画,以反映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)`;
}
答案 0 :(得分:1)
找到一个解决方案,将监听器绑定到viewer.clock.onTick
而不是在摄像机上更改自身。罗盘现在只用一个听众和一个功能就可以很好地反映出相机的标题:
viewer.clock.onTick.addEventListener(rotateCompass);
function rotateCompass() {
compass.style.transform = `rotate(${viewer.camera.heading}rad)`;
}