問題背景
API本身的遮罩層案例只能用于二維。不能在三維場景SceneView上通過遮罩凸顯想要表達的地理區(qū)域。二維下基于BaseLayerView2D開發(fā),實現(xiàn)圖層的layereffect效果。

基于BaseLayerView2D開發(fā)
解決思路
想要在三維下實現(xiàn)遮罩層效果,可以使用幾何引擎,利用視圖范圍面幾何(或世界范圍面幾何) 與 想要高亮顯示的區(qū)域面幾何 做幾何分析difference。得到視圖范圍面幾何(或世界范圍面幾何)挖孔后的面,設置黑色,透明度。
關鍵代碼
查詢要素獲得想要高亮的面(結果可以是多個),將多個面合并(union)為一個幾何面。
將視圖范圍面(或世界范圍面) 與 上一步合并后的面做差異分析(difference)。得到結果clippedGeometry

設置面符號黑色,透明度70%,創(chuàng)建挖孔面作為遮罩層的Graphic,添加到視圖中。

完整代碼
https://codepen.io/dansdocker/pen/NWopjMZ
最終效果

SceneView下遮罩層的實現(xiàn)