您好,经测试, 在调用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);
希望对您有所帮助