Cesium handle 时间条点击

Cesuim handle timebar click

如何处理Cesuim时间栏点击? 在回调中获得点击时间会很舒服。 我几乎确定它已实现,所以我正在寻找类似的东西。

function handleClick(event) {
  console.log(event.CLICKED_DATETIME);
}

viewer.timebar.ON_TIMEBAR_CLICK = handleClick;

谢谢。

是的,这很简单。目前what Viewer does

viewer.timeline.addEventListener('settime', onTimelineScrubfunction, false);

但是,一些注意事项:

  • 如果用户 "scrubs"(将当前时间条拖过时间线),此事件将很快触发。准备好同时处理大量事件,例如 mousemove 或 touch/pointer move。不要尝试在事件期间为地球设置动画,只需设置一些变量以在下一动画帧生效 like Viewer does.

  • 这个 API 在技术上是 "private",这只是意味着它可能会在没有 Cesium 正常弃用政策的任何版本中发生变化。即便如此,这是获得此事件的唯一方法,所以请继续使用它,注意重新测试它,特别是在阅读发行说明中的​​任何时间线更改后(这并不常见,因为时间线长期以来一直是静态的现在是时候了,但总有一天可能会发生完全替换)。

不太优雅但也是一种选择

viewer.timeline.container.onmouseup = (e) => {
  console.log(viewer.clock.currentTime);
}