首页 / 浏览问题 / 组件GIS / 问题详情
iobject保存场景
35EXP 2022年05月08日

没有打开工作空间,直接打开一个数据源,利用自己写的代码生成了一个三维场景,这种情况下,如何把生成的场景保存下来。

string xml = SceneControl.Scene.ToXML();
string sceneName = Datasource.Alias.ToString();
Workspace.Scenes.SetSceneXML(sceneName,xml);  //这句报错“指定名称不存在”
Workspace.Save();

1个回答

您好,看您代码和描述,您是当前工作空间中没有场景,要完全新建一个场景吗?

新建场景需要使用接口:workspace.scenes.add(),该接口才是新建场景的接口。

而worksapce.scenes.setscnexml是对工作空间中已经存在的场景修改保存的接口。

希望可以帮助到您。
9,603EXP 2022年05月09日
这样子打开场景的数据集是空的,如何添加一个数据集在工作空间中
你add了之后,如果再修改功这个场景,是用这个场景的名字区setscenexml,不是其它的名字。

数据集是存放在数据源里的哈,不是存放在场景里的。

workspace.Datasources.Create来创建新的数据集,数据集是在数据源节点下的,和workspace.scenes场景节点是没有关系的哈。

场景存放的试试图层,图层和数据集是有区别的,不是一种东西。

结构概念这块不太了解的话,您可以查看帮助文档,组件类结构图。

http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iObjectsNet/15_DeveloperGuide/HTML/OMD.htm

帮助文档可以使用我给您发的在线版,也可以使用离线本地版,建议使用本地版,搜索效果更佳。

如果您安装的是完整组件,在组件安装目录的bin文件夹同级的help文件夹中,也可以单独下载:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/SuperMap_iObjects_.NET_Help.zip

如果开发的结构图不太理解的话,可以考虑入门学习观看下我们的免费的组件开发视频教程:
http://edu.supermap.com/#/lessonlist?typeid=576c4fa2d55f4442916284990c230ed5

好的谢谢 主要是光看帮助api还是有点迷
...