本文主要是介绍SuperMap webgl 加载影像缓存数据,出现白边或黑边问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在supermap idesktop中对影像数据进行了缓存处理,使用iserver发布成三维服务加载到webgl 三维地球中发现影像周边出现了白边问题,在idesktop桌面端可以通过设置“图层属性”-> 设置透明度进行白边处理,那么在webgl代码中应该如何处理呢。在网上搜了好些文章,终于解决了这个问题,记录一下,希望能帮助到有需要的人。
代码如下处理:
//webgl中加载iserver的三维数据服务地址let scene3d = viewer.scene.open('http://localhost:8090/iserver/services/3D-CRPH/rest/realspace');//当为webgl全部加载三维数据完毕后,获取所有的三维图层对象Cesium.when.all(scene3d,function(layers){for(let i = 0; i < layers.length;i++){//通过name==='Oc'来判断当前的图层是否为影像图层;'Za'代表三维模型图层;'zn'代表地形图层;if(layers[i].constructor.name == 'Oc'){//该两行代码为关键layers[i].transparentBackColor = Cesium.Color.fromCssColorString('#FFFFFF');//设置影像透明的颜色,即影像中那种颜色设置为透明色,本文设置白色'#FFFFFF'为透明色,即消除白色layers[i].transparentBackColorTolerance = Number(0.1);//设置影像透明颜色容限,这里设置0.1即可,该步骤必须存在,如果只设置影像透明颜色,不设置容限数值,不会起作用}}})
设置以上代码后,重新运行代码,如下:
希望能够帮助有需要的朋友
这篇关于SuperMap webgl 加载影像缓存数据,出现白边或黑边问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!