首页 / 浏览问题 / 三维GIS / 问题详情
图层中点击获取到图元id,但是对图元使用没有任何效果
9EXP 2022年04月06日

各位大佬我想问一下,我已经点击并获取到当前图元id,但是进行操作却没有任何反应,是为什么呢,真的困扰好多天了,万分感谢。

        var Gridlayer = []
            for (let i = 0; i < layers.length; i++) {
                const element = layers[i];
                if(element.name == 'daolu'){
                    Gridlayer = element
                }
            }


            Gridlayer.visible = true

            // Gridlayer.setOnlyObjsVisible(['67'],true)
           
            var cancas = viewer.scene.canvas;
            var handler = new Cesium.ScreenSpaceEventHandler(cancas);
            handler.setInputAction(function (evt){
                var pick = viewer.scene.pick(evt.position)
                console.log(pick);
                var aa =Gridlayer.getObjsColor(pick.id)
                // Gridlayer.setOnlyObjsVisible([pick.id],false)
                debugger
            },Cesium.ScreenSpaceEventType.LEFT_CLICK)


        })

1个回答

您好,这边需要您更清晰具体的描述下问题才方便帮您定位解决。

看您问题,您是在代码调试过程中,已经看到id是拿到了吗?

如果您调试时已经看到拿到了id,那您现在的问题具体是执行哪行代码或者哪个api无效呢?

希望可以这边到您。
10,538EXP 2022年04月07日

感谢您,id可以拿到,就是执行setObjsVisible或者setOnlyObjsVisible没有任何效果

如果你这边确认id是没有问题的话,用这个方法的话,从两个方面看一下,

一是你的layer对不对,是不是这个倾斜图层的,

二是你的layer是不是从scene.layers里get或者find到的图层。

图层操作要去从scene.layers里拿才可以哈,add后回调的那种layer是不行的。
...