Cesium地图上Entity只显示一半

发布时间 2024-01-02 17:38:51作者: Felix_Openmind

方案1:调整深度检测值

使用disableDepthTestDistance: Number.POSITIVE_INFINITY,
圆点完全都在地上了

存在问题:
图中间的小圆点可能会出现在一些建筑的前面,实际在建筑的后面
这是关闭深度检测的必然结果!

方案2:抬升高度
下述语句中输入高度值
let position = Cesium.Cartesian3.fromDegrees(x, y, 10);
相关解释:
position中的10,代表圆点的高度,单位是“米”(从圆点的中心抬高10米)
pixelSize中的5,代表圆点的像素大小,单位是“像素”(5代表直径)
圆不被遮挡的条件:只有position中的高度,比pixelSize换算成米的数值大
在不同的camera高度下,一个像素代表的实际高度(单位为米),是不一样的
camera越高,一个像素换算成米,就越大
camera越低,一个像素换算成米,就越小

存在问题:
position中的height比较小:camera高的时候,小圆点还是有可能有一部分在地球下面
position中的height比较大:camera低的时候,点会显得离地面很远

方案3:关闭深度检测
执行下述代码,关闭深度检测
viewer.scene.globe.depthTestAgainstTerrain = false;