首页 / 浏览问题 / 组件GIS / 问题详情
超图用C#加载的场景模型不显示
54EXP 2019年04月03日
使用产品:SuperMap iDesktop .NET 9D 操作系统win10 x64
软件名称:supermap-idesktop.net-9.1.1-36767-win64-zip-chs
问题详细描述:超图用C#加载的场景模型不显示
问题重述步骤:1、超图中已有osgb和水面场景,高度都设在2000米,水面是透明的,添加一个正方体,正方体在水面下面,通过调整图层顺序,在超图场景中是可以看到水面下的正方体。
                       2、另用C#开发一个小工具,可以加载这个场景但是不知什么原因看不到正方体???
主要代码如下:

  

private bool CreateSceneControl(string workspacePath, string sceneName = null)
        {
            bool isOpen = true;
            if (null != m_sceneControl)
            {
                m_sceneControl.Scene.Close();
                m_sceneControl.Dispose();
                m_sceneControl = null;
            }

            m_sceneControl = new SceneControl();
            if (null == m_workspace)
            {
                m_workspace = new Workspace();
                isOpen = WorkspaceHelper.OpenWorkspace(m_workspace, m_sceneControl, workspacePath, sceneName);
            }
            else
            {
                isOpen = WorkspaceHelper.OpenScene(m_workspace, m_sceneControl, sceneName);
            }

            if (!isOpen) return isOpen;//打开失败

            //去掉三维地图上的经纬度
            m_sceneControl.IsStatusBarVisible = false;
            ScenceHost.Child = m_sceneControl;

            return isOpen;
        }

        private void btnSelect_Click(object sender, RoutedEventArgs e)
        {
            System.Windows.Forms.OpenFileDialog openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
            openFileDialog1.Filter = "超图工程文件 (*.smwu)|*.smwu";
            openFileDialog1.FilterIndex = 2;
            openFileDialog1.RestoreDirectory = true;
            openFileDialog1.Multiselect = false;
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                tbFile.Text = openFileDialog1.FileName;
                filepath = openFileDialog1.FileName;
                
                //打开三维
                CreateSceneControl(filepath, null);

            }
        }

1个回答

您好,你说的在程序中加载看不到正方体是什么意思  是这个正方体没有吗?  还有你这个代码就是打开一个场景,也看不出什么呀
2,432EXP 2019年04月04日
除了这个正方体,超图场景中能看到的对象在程序打开的界面中都能看到,不知道什么原因
请问您那个正方体是怎么样添加的,是通过kml图层还是模型数据集,我这边是可以添加的,能详细描述一下吗
正方体是通过模型数据集添加的

1、新建数据集之后

2、添加到场景中

3、然后画了一个正方体

4、放在水面下

原来的场景中还有一个透明的水面和一个osgb的倾斜数据,通过调整图层顺序,可以看到水面下的正方体,但是通过程序来加载的就是看不到这个正方体。
您是不是在桌面开启地下模式了,您在组件开启地下模式看看,把地表透明调一下
您说的开启地下模式是在分格设置-->拉伸设置-->数据来自-->地上(地下)这个设置吗,这边设置是地上,然后其它设置也没有调,都是默认的
您试下把地表透明,开启地下看看 ,还有最好把你桌面场景的情况给我截个图 ,我这边不太清除你那边具体情况
您可以帮我远程看看吗

1232586185

q611kz
是teameviewer吗,我这边是v11版本的
和版本有关系吗,我这v13
这个不行的 必须要版本一样才行的哦,要不您那边下个v11的吧,我这边用的破解版,每次更新都会报错
1232586185

2156
...