【解决办法】动态调整时间来模拟阴影变化效果:
function updateShadowQueryTime() {
var dateValue = $("#selDate").val();
var startTime = new Date(dateValue);
startTime.setHours(Number($("#startTime :selected").val()));
shadowQuery.startTime = SuperMap3D.JulianDate.fromDate(startTime);
var endTime = new Date(dateValue);
endTime.setHours(Number($("#endTime :selected").val()));
shadowQuery.endTime = SuperMap3D.JulianDate.fromDate(endTime);
}
$('#sunlight').click(function(){
var dateVal = $("#selDate").val();
var startTime = new Date(dateVal);
var endTime = new Date(dateVal);
var shour = Number($("#startTime :selected").val());
var ehour = Number($("#endTime :selected").val());
if(shour >= ehour) {
alert("结束时间必须大于开始时间");
return;
}
// 设置时钟范围
startTime.setHours(shour);
endTime.setHours(ehour);
viewer.clock.startTime = SuperMap3D.JulianDate.fromDate(startTime);
viewer.clock.stopTime = SuperMap3D.JulianDate.fromDate(endTime);
viewer.clock.currentTime = viewer.clock.startTime.clone();
// 设置时钟为循环模式
viewer.clock.clockRange = SuperMap3D.ClockRange.LOOP_STOP;
// 设置初始速度 (1小时对应1秒)
viewer.clock.multiplier = 3600;
// 开始动画
viewer.clock.shouldAnimate = true;
// 显示动画控制面板
$('#animationControls').show();
// 更新阴影查询时间范围
updateShadowQueryTime();
// 启用阴影效果
shadowQuery.build();
});