cesium中的entity使用polyline绘线,但是 被primitive生成的图掩盖了,如何设置
时间: 2024-03-20 20:43:03 浏览: 15
要解决这个问题,你可以在生成的primitive上设置zIndex属性,将其设置为一个较小的值,这样它就会被放置在entity的下面,不会遮挡entity。
例如,假设你生成的primitive是一个primitiveCollection,你可以这样设置zIndex:
```javascript
primitiveCollection.zIndex = -1;
```
这会将primitiveCollection放置在entity的下面,使得entity不会被遮挡。
相关问题
cesium中的primitive使用polyline生成的线会被primitive生成的实体覆盖
您好,对于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,这样就可以保证线能够显示在实体的上方。
cesium中的entity被primitive盖住了
如果您的Cesium场景中entity被primitive盖住了,您可以尝试调整它们的显示顺序。可以通过在entity和primitive的属性中设置zIndex来实现它们的层级顺序。具体来说,您可以尝试将具有较高zIndex值的实体和primitive放在较低zIndex值的实体和primitive的上方,从而优化它们的显示顺序。您还可以在Cesium的Viewer对象中使用scene.pick方法来检测鼠标点击位置的entity和primitive,并确保它们正确的被选中。