Hi. I am generating orbital data from Matlab, piping that data to the node server, where it is formatted and sent to a client (Cesium-based) app.
[MATLAB]-->[NODE SERVER]-->[CESIUM APP]
The orbit data (position and velocity) is generated for every second. I transmit a packet containing the timestamped data every 10 samples. The CZML packet is of the following form:
///////////////////////////////////////////////////////
var json = {
"id": "sat1",
"availability":"2015-04-22T11:50:25Z/2015-04-23T11:50:25Z",
"point": {
"pixelSize": 12,
"color":{
"rgba": [255,0,0,255]
}
},
"position": {
"epoch": "2015-04-22T11:50:25Z",
"referenceFrame": "INERTIAL",
"cartesianVelocity": response.position,
"interpolationAlgorithm": "LINEAR",
"interpolationDegree": 1,
"previousTime": -1.0,
"nextTime": 10.0
}
};
///////////////////////////////////////////////////////
response.position in "cartesianVelocity" is an array with the format [time,position_x,position_y,position_z,velocity_x,velocity_y,velocity_z,...] (for 10 samples).
When data is received on the client app it is passed to:
///////////////////////////////////////////////////////
var response = JSON.parse(msg);
czmlDataSource.process(response);
///////////////////////////////////////////////////////
Using this framework I am able to pass generated data into the cesium library and view the position of the satellite. The problem I have is that the rendering does not interpolate for time instances between supplied data (between the 1 second gap). I have tried the other available interpolation algorithms and orders but it does not smooth the transition between data points. Is there some something fundamental that I am missing?
Thanks
Yash