cesium中的primitive使用polyline生成的线会被primitive生成的实体覆盖
时间: 2024-03-20 17:44:54 浏览: 197
您好,对于cesium中的primitive使用polyline生成的线被primitive生成的实体覆盖的问题,您可以通过设置primitive的depthTest属性来解决。具体做法是将线的depthTest属性设置为false,将实体的depthTest属性设置为true,这样就可以保证线能够显示在实体的上方。示例代码如下:
```
var viewer = new Cesium.Viewer('cesiumContainer');
var primitive = new Cesium.Primitive({
geometryInstances : new Cesium.GeometryInstance({
geometry : new Cesium.BoxGeometry({
dimensions : new Cesium.Cartesian3(1000000.0, 1000000.0, 1000000.0)
}),
modelMatrix : Cesium.Matrix4.IDENTITY,
attributes : {
color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED)
}
}),
appearance : new Cesium.MaterialAppearance({
material : Cesium.Material.fromType('Color', {
color : Cesium.Color.BLUE
})
}),
depthTest : true
});
var polyline = viewer.entities.add({
polyline : {
positions : Cesium.Cartesian3.fromDegreesArrayHeights([
0.0, 0.0, 0.0,
0.0, 0.0, 100000.0
]),
width : 5,
material : Cesium.Color.RED.withAlpha(0.5),
depthTest : false
}
});
viewer.scene.primitives.add(primitive);
```
在上述代码中,我们将primitive的depthTest属性设置为true,将polyline的depthTest属性设置为false,这样就可以保证线能够显示在实体的上方。
阅读全文