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