Cesium 绘制线条/图形被地形高程遮挡的问题

图一: 图片中点1点2之间是一条线,但是现在这条线有部分被遮挡了(图形的话也是一样的)
在这里插入图片描述
图二: 图片中的线是图一的完整正情况。
在这里插入图片描述

原因分析: depthTestAgainstTerrain 属性的设置问题。属性为true之后,相对于地形表面绘制,所以有地形的时候,会被地形的高程遮挡;如果设为false(默认值),那么将始终在顶部绘制。

// 相对于地形表面绘制
viewer.scene.globe.depthTestAgainstTerrain = true;
// 始终在顶部绘制(默认)
viewer.scene.globe.depthTestAgainstTerrain = false;
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Cesium中,可以使用PolylinePrimitive或PolylineGeometry来绘制线条,如果需要指定线条的方向,可以通过设置PolylineGeometry的positions属性来实现。具体步骤如下: 1. 创建PolylineGeometry对象,并设置其positions属性为一个Cartesian3数组,用来指定线条的坐标点。 ``` var positions = [ Cesium.Cartesian3.fromDegrees(-75, 35), Cesium.Cartesian3.fromDegrees(-125, 35) ]; var polyline = new Cesium.PolylineGeometry({ positions: positions }); ``` 2. 创建GeometryInstance对象,并设置其geometry属性为PolylineGeometry对象,用来指定线条的几何形状。 ``` var instance = new Cesium.GeometryInstance({ geometry: polyline }); ``` 3. 创建PolylineMaterialAppearance对象,并设置其material属性为一个Material对象,用来指定线条的颜色、宽度等属性。 ``` var material = new Cesium.Material({ fabric : { type : 'Color', uniforms : { color : new Cesium.Color(1.0, 1.0, 0.0, 1.0) } } }); var appearance = new Cesium.PolylineMaterialAppearance({ material: material, lineWidth: 5.0 }); ``` 4. 创建Primitive对象,并设置其geometryInstances属性为GeometryInstance对象,设置其appearance属性为PolylineMaterialAppearance对象,用来指定线条的外观和材质。 ``` var primitive = new Cesium.Primitive({ geometryInstances: instance, appearance: appearance, allowPicking: false }); ``` 5. 将Primitive对象添加到场景中。 ``` viewer.scene.primitives.add(primitive); ``` 以上代码可以绘制一条从(-75,35)到(-125,35)的黄色线条,宽度为5.0。如果需要指定线条的方向,可以调整positions数组中的顺序或添加更多的坐标点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值