KML linestring - poor wall visibility

When I use the KMLDataSource to visualize some of our files with LineStrings, the walls that Cesium draws are barely visible unless I tilt the globe.

See the attachment

Left side is what is drawn when using Cesium KMLDataSource

Right side is our old OpenLayers parser which does not use walls.

Is there any workaround for this? I think there was some discussion on this already but I apologize that I can’t find the discussion.

I haven’t seen a problem like this before, but it looks like it could be a bug. Could you send over a sample KML file to reproduce the problem?



Attaching a very basic example.

doc.kml (2.8 KB)


It looks like what we’re doing is comparable to how Google Earth renders this KML. OpenLayers is rendering it differently because they do not have KML support.

You could remove the tag so Cesium uses a polyline instead of a wall. Or maybe add a polyline at the same coordinates if you need to see that extrusion.



Right but in Google Earth even though it’s a wall it’s still visible. In Cesium the lines/walls are virtually invisible. See attached:

Hey Ashley (been a long time)

This is actually the oldest open issue in Cesium:

Part of the issue is that conceptually (at least in Cesium and in KML) a wall has no thickness (and a line has no radius). Ideally we would solve this at the Primitive level and have special rendering paths for 2D but that would still create problems in mostly straight-down 3D views.

I think we can get to good enough at the KML level by always adding an outline to walls of the same color as the geometry (unless the wall itself specifies a different color in the KML).

Would you be willing to take a crack at this and open a pull request? It should just be a small change in KmlDataSource.js (and the tests).

Ashley - thanks again for the report and the fix, #4961!