KmlDataSource not rendering placemarks

I am trying to use Cesium in an application I’m creating, but I can’t get loaded kml to render at all.

For complicated reasons I won’t get into, I have to load the kml as raw string data, then passed the parsed (using jQuery) object into KmlDataSource. AFAICT, Cesium should fully support this.

I’ve put a breakpoint into the continuation function of KmlDataSource.load, and using introspection, I’ve confirmed that the data source has been added to the active Cesium viewer instance, and the placemarks (294 in total) have all loaded and are set as entities on the KmlDataSource instance. I picked a couple at random, and made sure that show is set to true, and that they have valid position and style properties.

Still, nothing is rendering. Am I missing something? I’m not super familiar with Cesium’s rendering process, but I can’t think of what could be wrong with how I have the viewer currently set up.

In case you’re curious, here’s the code I’m using to load the kml data source. mapData is a string:

Cesium.KmlDataSource.load($.parseXML(mapData),

{

camera: viewer.camera,

canvas: viewer.canvas,

}).then((dataSource) => {

viewer.dataSources.add(dataSource);

});

UPDATE:

Nevermind. I got it working. It appears that if Cesium is running in a document loaded via the file:// protocol, everything goes to hell in a handbasket.