gis

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

最终效果

SceneView下遮罩层的实现
上一篇下一篇

猜你喜欢

热点阅读