CESIUM 點只顯示一半
問題:
小圓點只有一半在地上譬涡,一半在地下
背景介紹:
通過下述代碼往地圖上添加小圓點
備注:此時沒有加載地形
//創(chuàng)建點
createPoint(cartesian) {
let $this = this;
let point = this.viewer.entities.add({
position: cartesian,
point: {
pixelSize: 10,
color: $this.Cesium.Color.YELLOW,
}
});
$this._entities_point.push(point);
return point;
}
方案1:調(diào)整深度檢測值
使用disableDepthTestDistance: Number.POSITIVE_INFINITY
,
圓點完全都在地上了
存在問題:
圖中間的小圓點可能會出現(xiàn)在一些建筑的前面切黔,實際在建筑的后面
這是關(guān)閉深度檢測的必然結(jié)果漩勤!
方案2:抬升高度
下述語句中輸入高度值
let position = Cesium.Cartesian3.fromDegrees(x, y, 10);
相關(guān)解釋:
position中的10,代表圓點的高度淌实,單位是“米”(從圓點的中心抬高10米)
pixelSize中的5冻辩,代表圓點的像素大小,單位是“像素”(5代表直徑)
圓不被遮擋的條件:只有position中的高度拆祈,比pixelSize換算成米的數(shù)值大
在不同的camera高度下恨闪,一個像素代表的實際高度(單位為米),是不一樣的
camera越高放坏,一個像素換算成米咙咽,就越大
camera越低,一個像素換算成米淤年,就越小
存在問題:
position中的height比較芯ā:camera高的時候,小圓點還是有可能有一部分在地球下面
position中的height比較大:camera低的時候麸粮,點會顯得離地面很遠
方案3:關(guān)閉深度檢測
執(zhí)行下述代碼溉苛,關(guān)閉深度檢測
viewer.scene.globe.depthTestAgainstTerrain = false;