How do I place a kml entity X meters above a terrain?

1. A concise explanation of the problem you're experiencing.

I am reading in polygons, tessellations, points and so forth from KML and would like to place them ABOVE the terrain by a fixed amount.

I can load the entities just find and render them w/o problems. When I switch on the terrain then they are placed under the surface and are hidden.

2. A minimal code example. If you've found a bug, this helps us reproduce and repair it.

var kmlOptions = {
camera : viewer.scene.camera,
canvas : viewer.scene.canvas,
clampToGround : true // false // neither seems to work

var fireData = Cesium.KmlDataSource.load('./Source/SampleData/fireData.kml', kmlOptions);

    // Add geocache billboard entities to scene and style them
    fireData.then(function(dataSource) {
        // Add the new data as entities to the viewer
        viewer.dataSources.add(dataSource);

         // Get the array of entities
         var fireDataEntities = dataSource.entities.values;

         for (var i = 0; i < fireDataEntities.length; i++) {
             var entity = fireDataEntities[i];
             //console.log(entity.position1)
             //console.log(entity.position2)
             //var cartographicPosition = Cesium.Cartographic.fromCartesian(entity.position.getValue(Cesium.JulianDate.now()));
             //var latitude = Cesium.Math.toDegrees(cartographicPosition.latitude);
             //var longitude = Cesium.Math.toDegrees(cartographicPosition.longitude);
             //entity.position = Cesium.Cartesian3.fromDegrees(longitude, latitude, 1000.0) ; //height) // This works at a fixed height but how do I het the terrain height?
             if (Cesium.defined(entity.billboard)) {
                 console.log("entity: " + i)
                   //entity.billboard.verticalOrigin = Cesium.VerticalOrigin.BOTTOM;
                   //entity.billboard.distanceDisplayCondition = new Cesium.DistanceDisplayCondition(10.0, 20000.0);
              // var cartographicPosition = Cesium.Cartographic.fromCartesian(entity.position.getValue(Cesium.JulianDate.now()));
              // var latitude = Cesium.Math.toDegrees(cartographicPosition.latitude);
              // var longitude = Cesium.Math.toDegrees(cartographicPosition.longitude);
              // entity.position = Cesium.Cartesian3.fromDegrees(longitude, latitude, 800.0) ; //height)
              // entity.description = entity.description.toString()
              }
              else
                  if (Cesium.defined(entity.polyline)) {
                      console.log("entity: " + i)
                 // Adjust the vertical origin so pins sit on terrain
                 //entity.billboard.verticalOrigin = Cesium.VerticalOrigin.BOTTOM;
                 // Disable the labels to reduce clutter
                 //entity.label = undefined;
                 // Add distance display condition
                 //entity.billboard.distanceDisplayCondition = new Cesium.DistanceDisplayCondition(10.0, 20000.0);
                 // Compute latitude and longitude in degrees
                /* var cartographicPosition0 = Cesium.Cartographic.fromCartesian(entity.polyline.positions._value[0]);
                 var latitude0 = Cesium.Math.toDegrees(cartographicPosition0.latitude);
                 var longitude0 = Cesium.Math.toDegrees(cartographicPosition0.longitude);
                 var newPosition0 = Cesium.Cartesian3.fromDegrees(longitude0, latitude0, 220.0);
                 var cartographicPosition1 = Cesium.Cartographic.fromCartesian(entity.polyline.positions._value[1]);
                 var latitude1 = Cesium.Math.toDegrees(cartographicPosition1.latitude);
                 var longitude1 = Cesium.Math.toDegrees(cartographicPosition1.longitude);
                 var newPosition1 = Cesium.Cartesian3.fromDegrees(longitude1, latitude1, 220.0);
                 // entity.position = Cesium.Cartesian3.fromDegrees(longitude, latitude, 1000.0) ; //height)
                 entity.polyline.positions = [newPosition0, newPosition1];*/
                 // Modify description
                 // var description = '<table class="cesium-infoBox-defaultTable cesium-infoBox-defaultTable-lighter"><tbody>' +
                 // '<tr><th>' + "Longitude" + '</th><td>' + longitude.toFixed(5) + '</td></tr>' +
                 // '<tr><th>' + "Latitude" + '</th><td>' + latitude.toFixed(5) + '</td></tr>' +
                 // '</tbody></table>';
                 // entity.description = entity.description.toString()
                 //entity.description = description;
             }
             else {
                console.log("something else " + i)
            }
         }
     });

3. Context. Why do you need to do this? We might know a better way to accomplish your goal.

I need to be able to show objects suspended between poles in a 3D world view.
The KML data has no height info, just lat and lon.

4. The Cesium version you're using, your operating system and browser.
1.47 windows 10