問題背景
API本身的遮罩層案例只能用于二維舌劳。不能在三維場景SceneView上通過遮罩凸顯想要表達的地理區(qū)域巨双。二維下基于BaseLayerView2D開發(fā)挨下,實現圖層的layereffect效果洪燥。
基于BaseLayerView2D開發(fā)
解決思路
想要在三維下實現遮罩層效果磕秤,可以使用幾何引擎,利用視圖范圍面幾何(或世界范圍面幾何) 與 想要高亮顯示的區(qū)域面幾何 做幾何分析difference捧韵。得到視圖范圍面幾何(或世界范圍面幾何)挖孔后的面市咆,設置黑色,透明度再来。
關鍵代碼
查詢要素獲得想要高亮的面(結果可以是多個)蒙兰,將多個面合并(union)為一個幾何面。
將視圖范圍面(或世界范圍面) 與 上一步合并后的面做差異分析(difference)芒篷。得到結果clippedGeometry
設置面符號黑色搜变,透明度70%,創(chuàng)建挖孔面作為遮罩層的Graphic针炉,添加到視圖中挠他。
完整代碼
https://codepen.io/dansdocker/pen/NWopjMZ
最終效果
SceneView下遮罩層的實現