三维开发,加载场景不出现

0 投票

代码已贴,执行后与用8c打开对比图如图,在8c中我的模型可以显示,但在我的程序中对应经纬度就没有模型,请问是什么原因造成的

private SceneControl myscenecl;
        private Workspace mywokspace;
         

      
        public Form1()
        {
            InitializeComponent();
            InitSkinGallery();

            SuperMap.Data.Environment.IsSceneAntialias = true;
            SuperMap.Data.Environment.SceneAntialiasValue = 4;

            WorkspaceConnectionInfo info = new WorkspaceConnectionInfo(@"C:\Users\K550JK\Desktop\BJFU\BJFUcj.smwu");
            mywokspace = new Workspace();
            mywokspace.Open(info);
            myscenecl = new SceneControl(); 
                     
            myscenecl.Dock = DockStyle.Fill;
            splitContainerControl.Panel2.Controls.Add(myscenecl);
            myscenecl.Scene.Workspace = mywokspace; 
           
           
            myscenecl.Action = Action3D.Pan;
            myscenecl.Scene.Refresh();
          

            Camera camera = myscenecl.Scene.Camera;
            camera.Altitude = 135;
            camera.Latitude = 39;
            camera.Longitude = 111;
            camera.Heading = 87.4579968695009;
            camera.Tilt = 78.577494932720839;
            myscenecl.Scene.Fly(camera, 5);
        }

4月 10, 2018 分类:  681次浏览 | 用户: lanzx 才疏学浅 (11 分)
重新开放 4月 10, 2018 用户:lanzx

1个回答

1 投票
 
已采纳
您好,您的代码中并没有打开场景,只是相机飞去了指定的位置,打开场景代码scenecontrol.scene.open("场景名");
4月 10, 2018 用户: 胡林 登峰造极 (5,931 分)
采纳于 4月 10, 2018 用户:lanzx

您好,我加了这句代码后执行程序,等好久后报错,不能成功编译,我已经纠结这个问题五六天了,怎么改都不能成功加载,但在8c中可以成功打开,我的这段代码无论怎样就是不能加载这个模型,我这个数据是之前问您后,用sketchup导出的dae,然后在8c中新建kml,加载模型后保存工作空间得到的,大神能帮我看看是不是我这数据有问题啊,https://pan.baidu.com/s/1mMTZYz78gZb5sIxYvw0xTw

你这只给了一个工作空间给我啊,没有KML和模型,工作空间中是不会保存KML的。

附上加了这句话的代码和在8c中打开的截图 

private SceneControl myscenecl;
        private Workspace mywokspace;
         

      
        public Form1()
        {
            InitializeComponent();
            InitSkinGallery();

            SuperMap.Data.Environment.IsSceneAntialias = true;
            SuperMap.Data.Environment.SceneAntialiasValue = 4;

            WorkspaceConnectionInfo info = new WorkspaceConnectionInfo(@"C:\Users\K550JK\Desktop\BJFU\BJFUcj.smwu");
            mywokspace = new Workspace();
            mywokspace.Open(info);
            myscenecl = new SceneControl(); 
                     
            myscenecl.Dock = DockStyle.Fill;
            splitContainerControl.Panel2.Controls.Add(myscenecl);
            myscenecl.Scene.Workspace = mywokspace;
            myscenecl.Scene.Open("BJFU");
            myscenecl.Action = Action3D.Pan;
            myscenecl.Scene.Refresh();
          

            Camera camera = myscenecl.Scene.Camera;
            camera.Altitude = 135;
            camera.Latitude = 39;
            camera.Longitude = 111;
            camera.Heading = 87.4579968695009;
            camera.Tilt = 78.577494932720839;
            myscenecl.Scene.Fly(camera, 5);
        }

您的意思是我还需要在8c中导出一个kml吗,是在代码里在写一句加载kml的语句么
我有dae模型,我之前一直以为工作空间是可以保存kml的,那您还是告诉我,如何用超图导出可以在二次开发中加载的数据,都要生成什么数据及相关步骤吧
你私信我个QQ,我直接远程看看得了
...