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);
}
如何处理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);
}