Quarternions in CZML packets

I have a set of data that is latitude, longitude, altitude, yaw, pitch and role. At the moment, I populate: a sampledPositionProperty with lat, lon, alt; a sampledProperty of type Cesium.Quarternion using a transform, e.g.,

center = Cesium.Cartesian3.fromDegrees(4.726410, 48.60924,12018);

date = Cesium.JulianDate.fromIso8601(‘2005-11-22T21:34:53.80Z’);

hdg.addSample(date, Cesium.Transforms.headingPitchRollQuaternion(center, Cesium.HeadingPitchRoll.fromDegrees(215.2,2.6367,-0.3516)));


As the next step I am reducing the size of the data file by using a CZML dataSource with a position property for the entity:

“properties” : {
“position” : {

  "epoch": "2005-11-22T17:02:30Z",

  "cartesian": [

0.0, -0.206080, 51.14136,396,

60.0, -0.206080, 51.14136,496,

120.0, -0.206080, 51.14136,596


  "interpolationAlgorithm": "LAGRANGE",

  "interpolationDegree": 5




I’m aware that a similar thing can be done for orientation using quaternions. My question is: how can I include quaternions as an array without having to calculate them outside the CZML?

Sir William Hamilton has a lot to answer for… Grrr.



Hi there,

I think “unitQuaternion” might be the property you are looking for.



Thanks for the hint, Gabby.