Cesium进阶-利用时间轴模拟历史轨迹
// 假设我们有一个Cesium.Viewer实例叫做viewer
// 创建一个表示时间的Property实例,这里我们使用SampledPositionProperty
var time = new Cesium.JulianDate();
var startTime = Cesium.JulianDate.fromIso8601("2020-01-01T00:00:00Z");
var endTime = Cesium.JulianDate.fromIso8601("2020-01-02T00:00:00Z");
var property = new Cesium.SampledPositionProperty();
// 填充属性,模拟一个在特定时间范围内移动的轨迹
for (var i = 0; i < positions.length; i++) {
var time = Cesium.JulianDate.addSeconds(startTime, i * 3600, new Cesium.JulianDate());
property.addSample(time, positions[i]);
}
// 创建一个实体,并将时间属性与模拟轨迹相关联
var entity = viewer.entities.add({
position: property,
path: {
resolution: 1,
material: new Cesium.PolylineGlowMaterialProperty({
glowPower: 0.1,
color: Cesium.Color.WHITE
}),
width: 10
}
});
// 调整时间轴范围以匹配我们的属性数据
viewer.clock.startTime = startTime;
viewer.clock.stopTime = endTime;
viewer.clock.currentTime = startTime;
viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP; // 让时间循环
viewer.timeline.zoomTo(startTime, endTime); // 调整时间轴范围
这段代码展示了如何使用Cesium.SampledPositionProperty来创建一个动态的轨迹,并将其与Cesium.Viewer实例中的实体关联。然后,通过调整Cesium的时间轴设置,使得这条轨迹可以在时间轴上正确显示并模拟运动。
评论已关闭