KML - Unsupported feature node: MultiGeometry

I’m loading some kml that is being generated by an application on the server. When the cesium client tries to load this kml, I’m getting a ‘KML - Unsupported feature node: MultiGeometry’ error message.

Is there a list of kml items that are supported? Would the code that’s generating the kml most likely need to be changed to generate czml?


KmlDataSource actually supports MultiGeometry, can you share a KML file that causes this error? Does it load okay in Google Earth?

Here’s the file. Thanks for taking a look into this issue.


43_1446815521.kml (452 Bytes)

and it does load into GE.

I figured this issue out. Apparently our GE solution parses this kml fragment correctly, but the cesium parser requires a wrapper of either Document, Folder and/or Placemark. We can just fix our kml writer to include these outer tags, or supply them inline when loading the file. We keep around a concatenated kml file for the entire scene, so that’s likely why we try to just load the fragment. Thanks for taking a look at this, Scott

No problem. I took a quick look and technically the document is illegal XML/KML but not because of lacking document wrapper, but because of no xml preamble. It doesn’t load in desktop Google Earth either. Your explanation of your app just merging it into an existing document sounds right, you could technically do the same thing in a Cesium app, but just generating a proper file on the server is probably a better approach.

I got a response from an engineer who wrote the GE version of our app, and I was just unaware of how things were working. In GE, we were creating a KmlFolder, and then a KmlPlacemark child, and loading the kml into the KmlPlacemark.

I was trying to load that kml into view.datasources in cesium. I’ve been trying to use the Entity class in Cesium(as apposed to the collections) for everything so I can build grouping(parent-child) to set up a meaningful structure. I’d really like to do something similar in Cesium. When I look at the KmlFeatureData documentation there’s a reference to Entity.kml but there’s no reference to kml on the Entity documentation page.

I would like to create an Entity folder, and then another Entity to load the kml into. Is that possible? What’s the equivalent of KmlPlacemark in Cesium?