layerControl在关联场景后没有任何显示

0 投票
100 浏览

sceneControlModelingShow = new SceneControl();
            sceneControlModelingShow.Scene.Type = SceneType.NonEarthFlat;

            //打开工作空间
            workspaceModelingShow = new Workspace();
            WorkspaceConnectionInfo workspaceConnectionInfo = new WorkspaceConnectionInfo(@"E:\2" + @"\UDB\ProjectWorkspace.smwu");
            workspaceModelingShow.Open(workspaceConnectionInfo);

            //用于三维场景展示的数据集
            modelingDataVector = workspaceModelingShow.Datasources[0].Datasets[datasetName] as DatasetVector;

            Recordset recordset = modelingDataVector.Query(@"SmID=1", CursorType.Dynamic);
            Feature feature = recordset.GetFeature();
            GeoRegion georegion = feature.GetGeometry() as GeoRegion;
            Point2D innerPoint = georegion.InnerPoint;

            Camera camera = new Camera(innerPoint.X, innerPoint.Y, 100, AltitudeMode.RelativeToGround);//构造一个相机对象,并对其进行设置
            camera.Tilt = Convert.ToDouble(45);
            camera.Heading = Convert.ToDouble(0);

            Layer3DSettingVector layer3DSettingVector = new Layer3DSettingVector();
            Theme3DCustom theme3D = new Theme3DCustom();

            sceneControlModelingShow.Scene.Workspace = workspaceModelingShow;
            sceneControlModelingShow.Scene.Camera = camera;

            layer3DDataset = sceneControlModelingShow.Scene.Layers.Add(modelingDataVector, theme3D, true, @"模型展示三维场景");

            //关联layersControl控件
            layersControl1 = new LayersControl(sceneControlModelingShow.Scene);
            layersControl1.Scene.Refresh();

使用产品:iobject.net 9D   操作系统:win7 x64
数据类型: 文件型
问题详细描述:左侧是sceneControl控件加载的模型,右侧是layerControl,关联后右侧无显示。
 

最新提问 9月 25 分类:  100次浏览 | 用户: 剑心 (6 分)

1个回答

0 投票
您好!您的layerControl关联场景代码有误,应为layerControl.Scene=sceneControlModelingShow.Scene;
最新回答 9月 25 用户: 胡延南 名扬四海 (2,206 分)
改成这样以后,依旧没有显示。其次,关联代码来自帮助文档,应该是没有问题的。
您的代码和我的代码是一样的,我刚才看错了。您试一试将layerControl关联场景的代码写在

layer3DDataset = sceneControlModelingShow.Scene.Layers.Add(modelingDataVector, theme3D, true, @"模型展示三维场景");之前
按照你说的做了,但是没有效果。

之前有一个问题,是用代码创建layerControl对象,然后使用splitcontaine.panel.controls.add()去添加,这里就会报错,

内容为:SuperMap.UI.ImageBuilder”的类型初始值设定项引发异常。

我觉得可能和这个有一定关系。
打错了。是splitContainer.Panel.Controls.Add(layersControlModelingShow);
...