Not exactly... We are calling the process function on the CZML data source passing a CZML string/document to it. We don't really remove anything, we continually call the process function with each new CZML string/document. We rely on the availability/interval properties within each packet to remove elements when they fall outside their allotted time. Below is an example of the CZML; there are about 60 packets within the document consisting of a billboard, label and two polylines, As I mentioned the document interval is between 1-2 seconds with each child packets availability/interval being within the same 1-2 seconds. So, ideally something won't be displayed on the screen longer than 2 seconds before its removed/expected to be replaced...
[
{
"id": "document",
"version": "1.0",
"clock": {
"interval": "20180822T134847.91400000000067Z/20180822T134849.91400000000067Z"
}
},
{
"id": "6522",
"availability": "20180822T134847.91400000000067Z/20180822T134849.91400000000067Z",
"billboard": {
"image": "data:image/svg+xml;base64,ENCODED_STRING"
},
"label": {
"text": "TEXT",
"pixelOffset": {
"cartesian2": [ 0, 0 ]
},
"verticalOrigin": "TOP",
"horizontalOrigin": "LEFT"
},
"position": {
"cartographicDegrees": [ 0, 0, 0 ]
}
},
{
"parent": "6522",
"id": "6522-line-1",
"polyline": {
"material": {
"solidColor": {
"color": {
"rgba": [0, 0, 0, 255]
}
}
}
},
"interval": "20180822T134847.91400000000067Z/20180822T134849.91400000000067Z",
"positions": {
"cartographicDegrees": [
0, 0, 0,
0, 0, 0
]
},
"width": 4
},
{
"parent": "6522",
"id": "6522-line-2",
"polyline": {
"material": {
"solidColor": {
"color": {
"rgba": [0, 0, 0, 255]
}
}
}
},
"interval": "20180822T134847.91400000000067Z/20180822T134849.91400000000067Z",
"positions": {
"cartographicDegrees": [
0, 0, 0,
0, 0, 0,
0, 0, 0,
0, 0, 0,
0, 0, 0
]
},
"width": 4
}
]