首页 / 浏览问题 / 三维GIS / 问题详情
contextOptions 属性如何在viewer初始化后进行添加?
25EXP 2022年08月08日

如果直接在初始化时进行设置这个属性是可以生效的,但是我们现在用的别人框架,无法更改初始化配置,所有我在viewer初始化后通过什么方式能够设置这个参数

1个回答

您好,单纯的初始化一个contextOptions设置即可。

    var contextOption = {
             webgl : {
                 alpha : true
             }
        
    };
    viewer.contextOptions = contextOption;

希望可以帮助到您。
于丁
1
10,413EXP 2022年08月08日

你好,非常感谢你的回答,这个是我运行的两个截图,如果通过viewer.contextOptions = contextOption; 这样配置,好像背景图片并没有生效

你 viewer.contextOptions = contextOption 后输出看一下没有viewer.contextOptions吗?

我这边测试是可以的

我这里打印也是有的,但是他的实质性的作用并没有生效。  如果通过初试话是添加的contextOptions会出现在scene.context.options

这个是加载背景图片的代码,替换成初始化的是有个背景图片

        var viewer = new Cesium.Viewer("cesiumContainer", {
          //创建地形服务提供者的实例,url为SuperMap iServer发布的TIN地形服务
          terrainProvider: new Cesium.CesiumTerrainProvider({
            url: URL_CONFIG.SiChuan_TERRAIN,
            isSct: true, //地形服务源自SuperMap iServer发布时需设置isSct为true
            invisibility: true,
          }),
          animation: false,
          infoBox: false,
          selectionIndicator: false,
          skyBox: false,
          shadows: false,
          homeButton: false,
          navigationInstructionsInitiallyVisible: false,
          navigationHelpButton: false,
          skyAtmosphere: false, //天空色不显示
          orderIndependentTranslucency: false,
        //   contextOptions: {
        //     webgl: {
        //       alpha: true,
        //     },
        //   }
        });

        var contextOption = {
             webgl : {
                 alpha : true
             }
       
        };
        viewer.contextOptions = contextOption;
        console.log(viewer.contextOptions)
        const mm = document.getElementById("cesiumContainer");
        mm.style.background =
          "url(https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fdingyue.ws.126.net%2F2020%2F0515%2F465567a6j00qadpfz001cc000hs00b4c.jpg&refer=http%3A%2F%2Fdingyue.ws.126.net&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1662531561&t=4d87845e62404590f7a655285b08c997) no-repeat";
        mm.style.backgroundSize = "100% 100%";
        viewer.scene.backgroundColor = new Cesium.Color(0.0, 0.0, 0.0, 0.0);
        viewer.imageryLayers.get(0).show = false;
        viewer.scene.globe.baseColor = new Cesium.Color(0.0, 0.0, 0.0, 0.0);

var contextOption = {
                   webgl : {alpha: true, stencil: true},
                   allowTextureFilterAnisotropic: true
               };
               viewer.scene.context.options=contextOption;
我在我这里试过了, 面的数据也改变了,不生效。 QVQ  。烦死了

这鬼东西不会只能在初始化时候加才可以生效吧
我这边测试了几个viewer和scene的重载方法都没法能让他生效,这个属性可能确实只能初始化new的时候了。
...