首页 / 浏览问题 / WebGIS / 问题详情
supermap iclien3d for cesium 11i 如何用scanEffect 添加多个扫描圆
YE1
7EXP 2024年05月06日
我用viewer.scene.scanEffect.add 这个方法总是报错,请问应该如何添加显示多个扫描圆呢

1个回答

您好,经测试, 在调用scanEffect.show=true前,需要首先设置为scanEffect.centerPostion赋值,否则出现异常。
这里为您整理了使用代码
 

                    // here1: 输出iClient3D for Cesium 版本号

                    console.log(Cesium.SuperMapVersion)

                    // here2: 设置扫描线样式

                    viewer.scene.scanEffect.mode = Cesium.ScanEffectMode.CIRCLE; //利用圆环扫描效果

                    viewer.scene.scanEffect._period = 2000;

                    viewer.scene.scanEffect.color = Cesium.Color.CORNFLOWERBLUE

                    // here3: 定义添加扫描线的方法

                    var isFirstEffect = true;

                    function addScanEffect(position) {

                        if (isFirstEffect) {

                            viewer.scene.scanEffect.centerPostion = position;

                            isFirstEffect=false;

                            console.log("第一个扫描线")

                        }

                        else {

                            viewer.scene.scanEffect.add(position);

                            console.log("添加扫描线")

                        }

                        viewer.scene.scanEffect.show = true;

                    }

                    // here4: 作为测试,每隔三秒取摄像头位置添加扫描线

                    setInterval(() => {

                        addScanEffect(viewer.camera.position.clone())

                    }, 3000);

希望对您有所帮助
310EXP 2024年05月07日
好的好的,成功运行了,非常感谢
...