I'm porting an existing Google Earth application to Cesium. The application tracks the position of a vehicle over time. Some base kml is loaded at first to show the overall track of the vehicle. Then a kml file is continuously updated with a placemark which shows the current position of the vehicle.
Currently, I am able to achieve the desired effect of moving the placmark in Cesium by adding the updated kml and removing the old kml every time it changes. The problem is that the placemark seems to flash or glitch each time that I reload it. Ideally, I would like to find a way to make this simple method work without flashing.
I had a similar issue in Google Earth which I solved by moving the existing KML instead of adding and deleting each time it changed. I've been unable to find a way to do the same with Cesium. I've tried looking into the entity objects associated with the KmlDataSource but I can't see any way to move them. I was able to find the associated primitive available through the scene but I was not able to determine how to make it move.
Below is the snippet I use to add and remove the kml.
var pparser = new DOMParser();
var newPositionDataSource = new Cesium.KmlDataSource();
var prom = newPositionDataSource.load(parser.parseFromString(testkml, "text/xml"));
if (positionDataSource != null)
positionDataSource = newPositionDataSource;