ArcGIS API for JavaScript 4.x 挖孔生成遮罩层

问题背景

API本身的遮罩层案例只能用于二维。不能在三维场景SceneView上通过遮罩凸显想要表达的地理区域。二维下基于BaseLayerView2D开发,实现图层的layereffect效果。

基于BaseLayerView2D开发

解决思路

想要在三维下实现遮罩层效果,可以使用几何引擎,利用视图范围面几何(或世界范围面几何) 与 想要高亮显示的区域面几何 做几何分析difference。得到视图范围面几何(或世界范围面几何)挖孔后的面,设置黑色,透明度。

关键代码

查询要素获得想要高亮的面(结果可以是多个),将多个面合并(union)为一个几何面。

将视图范围面(或世界范围面) 与 上一步合并后的面做差异分析(difference)。得到结果clippedGeometry

设置面符号黑色,透明度70%,创建挖孔面作为遮罩层的Graphic,添加到视图中。

完整代码

https://codepen.io/dansdocker/pen/NWopjMZ

最终效果

SceneView下遮罩层的实现
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容