ArcGIS API for JavaScript 4.x 挖孔
2023-11-08 本文已影响0人
Xuds
问题背景
API本身的遮罩层案例只能用于二维。不能在三维场景SceneView上通过遮罩凸显想要表达的地理区域。二维下基于BaseLayerView2D开发,实现图层的layereffect效果。
基于BaseLayerView2D开发解决思路
想要在三维下实现遮罩层效果,可以使用几何引擎,利用视图范围面几何(或世界范围面几何) 与 想要高亮显示的区域面几何 做几何分析difference。得到视图范围面几何(或世界范围面几何)挖孔后的面,设置黑色,透明度。
关键代码
查询要素获得想要高亮的面(结果可以是多个),将多个面合并(union)为一个几何面。
将视图范围面(或世界范围面) 与 上一步合并后的面做差异分析(difference)。得到结果clippedGeometry
设置面符号黑色,透明度70%,创建挖孔面作为遮罩层的Graphic,添加到视图中。
完整代码
https://codepen.io/dansdocker/pen/NWopjMZ