Is there a simple example of wrapping sampled positions in a TimeIntervalCollectionPositionProperty? I think I understand conceptually how it’s supposed to work, and I’ve been able to use it with fixed cartesian data, but I’ve only gotten errors when trying to use it with ranges of sampled positions.
I’ve constructed the following example in sandcastle with two sampled position properties and a TimeIntervalCollectionPositionProperty that combines them. Either sampled position property seems to work ok, but the combined version does not. Perhaps I’m not providing data
in the right way?
Any help would be appreciated. Thanks!
const viewer = new Cesium.Viewer("cesiumContainer");
const combinedPosition = new Cesium.TimeIntervalCollectionPositionProperty();
const sampledPositionA = new Cesium.SampledPositionProperty();
const timeA1 = Cesium.JulianDate.fromDate(new Date(1755180800000));
const timeA2 = Cesium.JulianDate.fromDate(new Date(1755181400000));
sampledPositionA.addSample(
timeA1,
Cesium.Cartesian3.fromDegrees(-114.0, 40.0, 300000.0),
);
sampledPositionA.addSample(
timeA2,
Cesium.Cartesian3.fromDegrees(-84.0, 40.0, 300000.0),
);
const sampledPositionB = new Cesium.SampledPositionProperty();
const timeB1 = Cesium.JulianDate.fromDate(new Date(1755190800000));
const timeB2 = Cesium.JulianDate.fromDate(new Date(1755191400000));
sampledPositionB.addSample(
timeB1,
Cesium.Cartesian3.fromDegrees(-114.0, 20.0, 300000.0),
);
sampledPositionB.addSample(
timeB2,
Cesium.Cartesian3.fromDegrees(-84.0, 20.0, 300000.0),
);
combinedPosition.intervals.addInterval(
new Cesium.TimeInterval({
start: timeA1,
stop: timeA2,
isStartIncluded: true,
isStopIncluded: false,
data: sampledPositionA,
}),
);
combinedPosition.intervals.addInterval(
new Cesium.TimeInterval({
start: timeB1,
stop: timeB2,
isStartIncluded: true,
isStopIncluded: false,
data: sampledPositionB,
}),
);
const blueBox = viewer.entities.add({
name: "Blue box",
position: sampledPositionA,
// position: combinedPosition,
box: {
dimensions: new Cesium.Cartesian3(400000.0, 300000.0, 500000.0),
material: Cesium.Color.BLUE,
},
});
viewer.clock.currentTime = timeA1
viewer.zoomTo(viewer.entities);