2016-03-02 28 views
1

銫在屏幕底部有一個很好的時間線,可以改變當前的天文現象,並根據模型改變模型位置和動畫。它沒有的東西,以及我真正需要的是在任意時間繪製事件的方法。我想從時間00:00:00開始,並從那裏實時前進,然後回到00:00:00。目前,我不關心天文活動,包括太陽和月球活動。該API設置爲接受Julian Time,而不是在某個任意時間設置。是否有可能插入一個任意的時間線來代替正常的時間線?銫中的任意時間軸?

回答

2

試試看。在內部它仍然使用來自任意日期的JulianDates,但用戶只能看到時間,而不是日期。

var viewer = new Cesium.Viewer('cesiumContainer', { 
 
    navigationInstructionsInitiallyVisible: false, 
 
    skyBox: false 
 
}); 
 

 
var clock = viewer.clock; 
 
clock.clockRange = Cesium.ClockRange.LOOP_STOP; 
 
clock.startTime = Cesium.JulianDate.fromIso8601('2016-01-01T00:00:00Z'); 
 
clock.stopTime = Cesium.JulianDate.fromIso8601('2016-01-01T23:59:59Z'); 
 
clock.currentTime = clock.startTime; 
 

 
function twoDigits(num) { 
 
    return ((num < 10) ? ('0' + num.toString()) : num.toString()); 
 
} 
 

 
var animationViewModel = viewer.animation.viewModel; 
 
animationViewModel.dateFormatter = function() { return ''; }; 
 

 
animationViewModel.timeFormatter = function(date, viewModel) { 
 
    var gregorianDate = Cesium.JulianDate.toGregorianDate(date); 
 
    var millisecond = Math.round(gregorianDate.millisecond); 
 
    return Cesium.sprintf("%02d:%02d:%02d.%03d", gregorianDate.hour, 
 
     gregorianDate.minute, gregorianDate.second, millisecond); 
 
}; 
 

 
viewer.timeline.makeLabel = function(time) { 
 
    var gregorian = Cesium.JulianDate.toGregorianDate(time); 
 
    var millisecond = gregorian.millisecond, millisecondString = ''; 
 
    if ((millisecond > 0) && (this._timeBarSecondsSpan < 3600)) { 
 
     millisecondString = Math.floor(millisecond).toString(); 
 
     while (millisecondString.length < 3) { 
 
      millisecondString = '0' + millisecondString; 
 
     } 
 
     millisecondString = '.' + millisecondString; 
 
    } 
 

 
    return twoDigits(gregorian.hour) + ':' + twoDigits(gregorian.minute) + ':' + 
 
     twoDigits(gregorian.second) + millisecondString; 
 
}; 
 

 
viewer.timeline.updateFromClock(); 
 
viewer.timeline.zoomTo(clock.startTime, clock.stopTime);
html, body, #cesiumContainer { 
 
    width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden; 
 
    font-family: sans-serif; 
 
}
<link href="http://cesiumjs.org/releases/1.18/Build/Cesium/Widgets/widgets.css" 
 
     rel="stylesheet"/> 
 
<script src="http://cesiumjs.org/releases/1.18/Build/Cesium/Cesium.js"> 
 
</script> 
 
<div id="cesiumContainer"></div>