如何在Cesium中的特定时间之前设置10分钟

时间:2017-09-05 06:22:55

标签: javascript cesium

我被要求在时钟视图模型上发布特定时间。具体时间是指1504108564(2017年8月30日星期三格林威治标准时间08:56:04 + 08:00)..我想在此时间前设置10分钟。我想把pTime放在时钟视图模型中。但它不起作用......我的代码在下面找到...

var pTime = 1504108564;
var tenMinuteOffset = Cesium.JulianDate.addSeconds(pTime, -600, new Cesium.JulianDate());

var clock = new Cesium.Clock({
    startTime : tenMinuteOffset,
    currentTime : tenMinuteOffset,
    clockRange : Cesium.ClockRange.LOOP_STOP,
    clockStep : Cesium.ClockStep.SYSTEM_CLOCK_MULTIPLIER
});

var viewer = new Cesium.Viewer('cesiumContainer', {
    infoBox : false,
    selectionIndicator : false,
    shadows : true,
    clockViewModel: new Cesium.ClockViewModel(clock)
});

我的问题是我想在时钟中使用这个时间戳...我想在时间戳之前设置10分钟 我需要将pTime转换为可读时间吗?怎么做?

1 个答案:

答案 0 :(得分:1)

addSeconds的第一个参数应该是对Cesium.JulianDate的引用,而不是整数。

尝试一下:

var pTime = Cesium.JulianDate.fromIso8601('2017-08-30T11:56:04+08');
var tenMinuteOffset = Cesium.JulianDate.addSeconds(pTime, -600, new Cesium.JulianDate());

var clock = new Cesium.Clock({
    startTime : tenMinuteOffset,
    currentTime : tenMinuteOffset,
    clockRange : Cesium.ClockRange.LOOP_STOP,
    clockStep : Cesium.ClockStep.SYSTEM_CLOCK_MULTIPLIER
});

var viewer = new Cesium.Viewer('cesiumContainer', {
    infoBox : false,
    selectionIndicator : false,
    shadows : true,
    clockViewModel: new Cesium.ClockViewModel(clock)
});

编辑:如果你真的想从时间戳开始,你可以这样做,但要注意时间戳没有加入时区。因此,使用时间戳将根据客户端的Web浏览器的时区设置而不是服务器具有不同的结果。上面代码的前几行看起来像这样:

var pTime = 1504108564;
var julian = Cesium.JulianDate.fromDate(new Date(pTime * 1000));
var tenMinuteOffset = Cesium.JulianDate.addSeconds(julian, -600, new Cesium.JulianDate());