У меня есть этот простой код, чтобы анимировать значок компаса, чтобы отразить текущую ориентацию камеры в Цезии, всякий раз, когда я проходил через 360 градусов, компас вращается влево, чтобы сбросить на 0, а не вращаться. Код ниже:
viewer.camera.changed.addEventListener(rotateCompass);
viewer.camera.moveEnd.addEventListener(rotateCompass);
function rotateCompass() {
document.getElementById('compass').style.transform =
'rotate(-${viewer.camera.heading}rad)';
}
Нашел решение, связанный слушатель с viewer.clock.onTick
а не на камеру, сам изменился. компас теперь отражает заголовок камеры довольно красиво только с одним слушателем и функцией 1:
viewer.clock.onTick.addEventListener(rotateCompass);
function rotateCompass() {
compass.style.transform = 'rotate(${viewer.camera.heading}rad)';
}