cesium 點只顯示一半

2021-10-08 17:23:54 字數 1606 閱讀 6741

背景介紹:

通過下述**往地圖上新增小圓點

備註:此時沒有載入地形

viewer.scene.globe.depthtestagainstterrain = true;

let colpoint = viewer.scene.primitives.add(

new cesium.pointprimitivecollection()

);let position = cesium.cartesian3.fromdegrees(x, y, 0);

let point = colpoint.add();

問題:小圓點只有一半在地上,一半在地下

方案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;

這個完美解決了,那麼關閉系統整體的深度檢測會導致哪些問題呢?

請教別人,他說會導致乙個問題:地下的物體會被看到。

總結:

上述3種方案都有問題,至此還沒有找到我滿意的解決方案

一半溫暖,一半寒冷

下雨後的日子,陽光漂亮的讓 淚。秋天裡的這樣的日子大概不會存在太久吧。就如同那些絕世的女子,那些有著幽綠色森林的夢中的靜謐。坐在窗邊讓陽光吻我,溫暖而幸福,一如和你在一起的感覺。然後就是長長的靜默,不知道會持續多久。這期間天空中跑過各種奇形怪狀的生物,長著松針樣羽毛的紅色夜鶯,坐在稀疏漁網上的女巫,...

生命的一半

德國偉大的文學家歌德與席勒是親密的朋友,儘管他們在年齡上相差較大,並且性格氣質也有很大不同,但是共同的誅求和對文學的熱愛把他們緊緊聯絡在一起,席勒寫作 威廉 退爾 的劇本時,歌德便將自己蒐集到的有關這一題材的全部資料無私的提供給席勒,而歌德的長篇巨著 威廉 麥斯特 的寫作,也得到了席勒的鼎立相助,席...

一半成功一半陷阱,如何判斷新的工作機會?

前次回顧及總結 07 年7月,朋友月月介紹了某國內大型招聘 招聘外包 rpo 團隊 leader 的職位。與對方初次溝通後,我利用 2小時的業餘時間寫了個招聘行業分析的 ppt,對市場 競爭對手 資源情況做了分析,對方比較滿意。當然,結果大家都知道,我把這個機會拒了,原因見 面對 我才知道自己有多脆...