首页 / 浏览问题 / 组件GIS / 问题详情
三维场景如何做到场景中只显示部分数据
22EXP 2023年09月11日
iobject .net 11i

尝试设置三维图层的最大最小可见高度属性后,整个图层就看不见了

使用layer3d.clipbybox()方法,没有任何效果,整个图层还是可见

1个回答

您好,您设置了最大最小可见高度和显示范围以后,需要用scene.Refresh()刷新一下。整个图层看不见可能是由于您的高度不在可见范围内。

希望可以帮助到您!
2,548EXP 2023年09月11日
用的bim导入的数据,另外还有三维点线数据,用了refresh(),

然后结果就是场景里面什么都看不见了

您好,我这边测试使用layer3d.clipbybox是没有问题的。建议您检查一下您的裁剪盒子范围是否有误,参数是否有写对,保留裁剪范围内需要使用BoxClipPart.ClipOuter。测试代码如下:

                //设置Layer3D.ClipByBox裁剪显示范围
                Layer3D layer3D = sceneControl1.Scene.Layers[0] as Layer3D;
                if (layer3D != null)
                {
                    // 构造 GeoBox 对象
                    GeoBox geoBox = new GeoBox();
                    // 设置长方体的底面大小
                    geoBox.BottomSize = new Size2D(200, 100);
                    // 设置长方体的高度
                    geoBox.Height = 300;
                    // 设置长方体所在的位置
                    geoBox.Position = new Point3D(116.457017861267,39.9129647795134,20.0);

                    layer3D.ClipByBox(geoBox, BoxClipPart.ClipOuter);
                }
                sceneControl1.Scene.Refresh();

...