1. A concise explanation of the problem you're experiencing.
Is it possible to apply ElevationRamp to Polyline?
2. A minimal code example. If you've found a bug, this helps us reproduce and repair it.
var dataSourcePromise = Cesium.GeoJsonDataSource.load('rohace.geojson', {});
function getColorRamp() {
var ramp = document.createElement('canvas');
ramp.width = 100;
ramp.height = 1;
var ctx = ramp.getContext('2d');
var values = [0.0, 0.045, 0.1, 0.15, 0.37, 0.54, 1.0];
var grd = ctx.createLinearGradient(0, 0, 100, 0);
grd.addColorStop(values[0], '#000000'); //black
grd.addColorStop(values[1], '#2747E0'); //blue
grd.addColorStop(values[2], '#D33B7D'); //pink
grd.addColorStop(values[3], '#D33038'); //red
grd.addColorStop(values[4], '#FF9742'); //orange
grd.addColorStop(values[5], '#ffd700'); //yellow
grd.addColorStop(values[6], '#ffffff'); //white
ctx.fillStyle = grd;
ctx.fillRect(0, 0, 100, 1);
return ramp;
}
var material1 = new Cesium.Material.fromType('ElevationRamp');
shadingUniforms = material1.uniforms;
shadingUniforms.minHeight = -414;
shadingUniforms.maxHeight = 8777;
shadingUniforms.image = getColorRamp();
viewer.dataSources.add(dataSourcePromise).then(function(){
viewer.dataSources.get(0).entities.values.forEach(function(entity) {
if (entity.polyline) {
entity.polyline.material = material1;
}
});
});
3. Context. Why do you need to do this? We might know a better way to accomplish your goal.
I want to draw polyline (from geojson) and color it based on elevation. I tried creating material from ElevationRamp as seen here https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=Globe%20Materials.html but it doesn't work. Either I'm missing something or it just doesn't work for polyline.
4. The Cesium version you're using, your operating system and browser.
Cesium 1.52, Chromium 70, Linux