CZML references

I'm just starting with czml and writing a CZML library in scala using
the references on github such as;

Those references do not seem to correspond to any czml files I have come across.
Is there some documents somewhere that describe the current/older czml content?

What is the projected time frame for the github czml references to be the current state of czml?

I also came across a few surprises in the references, for example,
   polyline.material.solidColor, polyline.material.polylineOutline and polyline.material.polylineGlow
   takes "color" as a field, this seems to be inconsistent with other similar fields for example,
   polyline.material.polylineOutline.outlineColor, label.fillColor, point.outlineColor, etc...

In addition there are a number of fields, (eg number) that can take very different values,
array or string or double, or even array of mix types based on other fields (epoch).
These types of specifications make for very tedious coding.

Is there a better way to organise the czml content so that
the fields types do not depend on other fields ?

You could consider using the Java reference implementation of czml-writer, which is a complete implementation of the current version of CZML.

The content on the wiki unfortunately is not very clear or easy to read, but the list of properties should be accurate. In your example about colors, the information is correct - many graphical features involve multiple colors. Generally, “color” represents the base or overall color, and other colors are available for other aspects, e.g. points have both point.color and point.outlineColor.


Cool project. Will this be on GitHub? Keep us posted on your progress and we’ll help spread the word.

Also, this is not an exhaustive reference, but there are several CZML examples here:


Ha, I was just reading the same info on a similar link

Thanks anyway, it is a good set of examples.

I was planning to put what I have done on github, as I am doing this just for fun.
However, the coding is becoming a bit of a mess and not much fun anymore.
Mostly because I just cannot get a grip on what the correct specs are.
Looking at "CZML content" and the schemas I start to form a mental picture of how it could work,
then the examples and "CZML structure" introduces
things like "interval" for some properties but does not say which ones. I'm not sure if this
is to be in addition to epoch, nextTime, previousTime, etc.. or to replace those fields.
In a nutshell I don't understand what is what yet.
The constant checking if a field is now a number or a string or an array or some other type
depending on some other fields, is really becoming tedious.
The idea was to create a library that can read and write czml files and also provide
scala/scala.js class objects to work with.

The CZML loader in Cesium may be a good place to look to clear some of this up. Check out the update function for each object:


Thanks for the link to the code, it gave me some insights. However I'm still struggling, in particular with the "interval" property. From the JS code I could not yet pinpoint
within each "object" which properties/sub-properties can have an "interval".

From the examples czml files I found the following
properties/sub-properties taking an optional additional "interval" element:


Are there any others? If so, which ones take the optional "interval"?

Also looking at the examples, I found a "rectangle", such as:

    "rectangle" : {
      "coordinates" : { "wsenDegrees" : [-100, 40, -90, 50] },
      "fill" : true,
      "material" : {
        "solidColor" : {
          "color": {
            "rgbaf" : [1, 0, 0, 0.39]
I could not find a reference for this in the CZML-Content, but saw it in the cesium JS code.
Is there more info on this, e.g. "wsenDegrees"?