ClockViewModel
是一个计时器视图模型,用于控制Cesium
场景的时间。
首先,创建一个ClockViewModel
实例和Viewer
实例来控制Cesium
场景的时间,默认值如下:
var clockViewModel = new Cesium.ClockViewModel();
var viewer = new Cesium.Viewer('cesiumContainer', {
clockViewModel : clockViewModel
});
现在,您可以使用ClockViewModel
来访问当前时间(clockViewModel.currentTime
)或者更改时间(clockViewModel.clock.currentTime
)。
console.log(clockViewModel.currentTime.toString());
clockViewModel.clock.currentTime = Cesium.JulianDate.now();
您还可以通过更改属性来控制计时器的行为,例如,更改时钟的开始时间和暂停时间。
clockViewModel.startTime = Cesium.JulianDate.fromDate(new Date(2015, 2, 25, 12));
clockViewModel.stopTime = Cesium.JulianDate.fromDate(new Date(2015, 2, 25, 13));
如果没有设置暂停时间,计时器将一直在运行。
getClockOptions()
获取当前时钟设置的副本。返回一个包含所有时钟选项的JavaScript对象。
var clockOptions = clockViewModel.getClockOptions();
setClockOptions(options)
通过传递一个包含时钟选项的JavaScript对象来更新时钟设置。
clockViewModel.setClockOptions({
startTime: Cesium.JulianDate.now(),
stopTime: Cesium.JulianDate.addSeconds(Cesium.JulianDate.now(), 3600, new Cesium.JulianDate())
});
clock
获取一个Cesium.Clock实例,该实例表示计时器的当前状态。
var clock = clockViewModel.clock;
canAnimate
获取或设置一个布尔值,指示计时器是否可以自动播放动画。
var canAnimate = clockViewModel.canAnimate;
clockViewModel.canAnimate = false;
shouldAnimate
获取或设置一个布尔值,指示计时器当前是否正在自动播放动画。
var shouldAnimate = clockViewModel.shouldAnimate;
clockViewModel.shouldAnimate = true;
currentTime
获取当前的时间。
var currentTime = clockViewModel.currentTime;
multiplier
获取或设置一个数字,用于调整计时器的速度。例如,如果将该属性设置为2,则时间流逝的速度就会加倍。
var multiplier = clockViewModel.multiplier;
clockViewModel.multiplier = 0.5;
clockRange
获取或设置一个标识符,用于指定计时器在何时停止。
var clockRange = clockViewModel.clockRange;
clockViewModel.clockRange = Cesium.ClockRange.LOOP_STOP;
clockStep
获取或设置一个标识符,用于指定计时器的步进方式。
var clockStep = clockViewModel.clockStep;
clockViewModel.clockStep = Cesium.ClockStep.SYSTEM_CLOCK_MULTIPLIER;
startTime
获取或设置计时器的开始时间。
var startTime = clockViewModel.startTime;
clockViewModel.startTime = Cesium.JulianDate.fromDate(new Date(2015, 2, 25, 12));
stopTime
获取或设置计时器的暂停时间。
var stopTime = clockViewModel.stopTime;
clockViewModel.stopTime = Cesium.JulianDate.fromDate(new Date(2015, 2, 25, 13));
systemTime
获取或设置当前系统时间。默认情况下,该值始终为Cesium.JulianDate.now()。
var systemTime = clockViewModel.systemTime;
clockViewModel.systemTime = Cesium.JulianDate.addHours(Cesium.JulianDate.now(), 1, new Cesium.JulianDate());
canSetSystemTime
获取一个布尔值,指示当前是否可以更改systemTime
属性。如果canAnimate
属性为true
,则该属性也会自动更新为true
。
var canSetSystemTime = clockViewModel.canSetSystemTime;
clockStepIsFast
获取或设置一个布尔值,指示计时器的步进方式是否为Cesium.ClockStep.SYSTEM_CLOCK
。
var clockStepIsFast = clockViewModel.clockStepIsFast;
clockViewModel.clockStepIsFast = true;
shouldAnimateFromStart
获取或设置一个布尔值,指示计时器是否应该重新开始播放动画。
var shouldAnimateFromStart = clockViewModel.shouldAnimateFromStart;
clockViewModel.shouldAnimateFromStart = true;
onTick
在每个时钟步骤的开始时触发。
var subscription = clockViewModel.onTick.addEventListener(function(clockViewModel) {
console.log(clockViewModel.currentTime.toString());
});