首页 / 浏览问题 / 组件GIS / 问题详情
三维场景在scenecontrol中显示
23EXP 2018年07月20日
 public Form1()
        {
            InitializeComponent();
        }
        public Workspace m_workSpace;
        public SceneControl m_sceneControl;
        private void Form1_Load(object sender, EventArgs e)
        {
            m_workSpace = new SuperMap.Data.Workspace();
            m_sceneControl = new SuperMap.UI.SceneControl();
            m_sceneControl.Action = Action3D.Pan;
            m_sceneControl.Dock = DockStyle.Fill;
            m_sceneControl.Scene.Workspace = m_workSpace;
            string m_file = "工作空间文件(*.smwu)|*.smwu";
            OpenFileDialog openWorkSpace=new OpenFileDialog();
            openWorkSpace .Filter=m_file;
            openWorkSpace .FilterIndex=0;
            string  WorkspacePath;

            if(openWorkSpace.ShowDialog()==DialogResult.OK)
            {
                WorkspacePath  =openWorkSpace.FileName;
                WorkspaceConnectionInfo workspaceConnectionInfo = new WorkspaceConnectionInfo(@WorkspacePath);
                m_workSpace.Open(workspaceConnectionInfo);
                m_sceneControl.Scene.Open("OlympicGreen");
            }

           


        }

请问如何修改代码才能在scenecontrol里显示三维场景呢,运行后只出现地球。

1个回答

您好!首先,请您确定您打开的工作空间的场景里有无OlympicGreen,其次,您得在SuperMap桌面软件打开您的场景看有没有内容。您给的这些代码我这边测试没有问题。请您确认您的工作空间或场景是否有效。
3,352EXP 2018年07月20日
都有的,我用panel是可以打开三维场景的。
那您就将scenceControl添加到panel里,您如果没有直接拖scenceControl控件,就只能这样写了。

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public Workspace m_workSpace;
        public SceneControl m_sceneControl;
        private void Form1_Load(object sender, EventArgs e)
        {
            m_workSpace = new SuperMap.Data.Workspace();
            m_sceneControl = new SuperMap.UI.SceneControl();
            m_sceneControl.Dock = DockStyle.Fill;
            panel1.Dock = DockStyle.Fill;
            panel1.Controls.Add(m_sceneControl);
            m_sceneControl.Scene.Workspace = m_workSpace;
            string file = @"C:\Users\LLLDD\Desktop\新建文件夹\OlympicGreen.smwu";
            WorkspaceConnectionInfo workspaceConnectionInfo = new WorkspaceConnectionInfo(file);
            m_workSpace.Open(workspaceConnectionInfo);
            m_sceneControl.Scene.Open("OlympicGreen");

        }

换了这个代码,打开就变成这样了。。。。怎么办。。。。

您是不是在Form窗口还拖进去了一个SceneControl控件?将这个控件删除。我前面说的将scenceControl添加到panel里panel1.Controls.Add(m_sceneControl),是指代码,不是让您拖控件

嗯嗯嗯,受到收到,解决了laugh

谢谢啦。
...