你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
问题
话题
文章
帮助
登录
注册
ArcGIS Engine
请问如何使用ArcEngine实现另存为sxd格式的文件?
网上利用IPersistStream接口进行保存后,文件用arcscene是打不开的,而且缺失了很多内容,所以想请问一下有什么其他接口可以实现在axscenecontrol中sxd的另存以及保存的,谢谢各位。
1 个回复
朱新颖
赞同来自:
现在的未来的
SceneControl中保存sxd就是通过IPersistStream接口实现的,参考下面代码:
如果想在ArcScene中打开的话,可以使用上述代码在ArcScene上做个Add-in工具,打开文件,将其在ArcScene中显示。
//save sxd
IMemoryBlobStream mbStream = new MemoryBlobStreamClass();
IObjectStream objectStream = new ObjectStreamClass();
objectStream.Stream = mbStream;
IPersistStream persistStream = (ESRI.ArcGIS.esriSystem.IPersistStream)axSceneControl1.Scene;
persistStream.Save(objectStream, 1);
saveFileDialog1.Title = "保存Scene文档";
saveFileDialog1.Filter = "保存Scene文档(*.sxd)|*.sxd";
saveFileDialog1.ShowDialog();
string filename = saveFileDialog1.FileName;
mbStream.SaveToFile(filename);
MessageBox.Show("OK");
//open engine-saved sxd
openFileDialog1.Title = "打开Scene文档";
openFileDialog1.Filter = "Scene文档(*.sxd)|*.sxd";
openFileDialog1.ShowDialog();
string filename = openFileDialog1.FileName;
if (axSceneControl1.CheckSxFile(filename))
axSceneControl1.LoadSxFile(filename);
else
{
IScene pScene = axSceneControl1.Scene;
IMemoryBlobStream mbStream = new MemoryBlobStreamClass();
IObjectStream objectStream = new ObjectStreamClass();
mbStream.LoadFromFile(filename);
IPersistStream pPersistStream = (ESRI.ArcGIS.esriSystem.IPersistStream)pScene;
objectStream.Stream = mbStream;
pPersistStream.Load(objectStream);
}
要回复问题请先
登录
或
注册
发起人
现在的未来的
相关问题
如何优雅的使用ArcGIS知乎?
有谁知道哪里可以免费获取各省市地图数据呢,包括详细的shape文件数据
苹果系统下可以使用arcgis 吗?
请问ArcGIS适合在局域网内用javaweb做二次开发吗?
请问初学者怎样快速入门
请问大神们,怎么用ArcGIS做城镇间经济联系强度的图?
用ArcMap输入7参数,从wgs84坐标系转西安80坐标系,转后误差较大,4米左右,请问这是正常的吗?如何能提高转换精度?
在Visual studio 2015 中使用 Arcgis API for JavaScript v3.16 如何实现代码智能提示?
请问arcmap如何使用多线程?
请问大家学习AE开发都参考了哪些资料?
两个栅格文件分辨率一致,但像元位置不一致,如何处理?
问题状态
最新活动:
2016-07-25 16:25
浏览:
3200
关注:
2
人
1 个回复
朱新颖
赞同来自: 现在的未来的
如果想在ArcScene中打开的话,可以使用上述代码在ArcScene上做个Add-in工具,打开文件,将其在ArcScene中显示。
//save sxd
IMemoryBlobStream mbStream = new MemoryBlobStreamClass();
IObjectStream objectStream = new ObjectStreamClass();
objectStream.Stream = mbStream;
IPersistStream persistStream = (ESRI.ArcGIS.esriSystem.IPersistStream)axSceneControl1.Scene;
persistStream.Save(objectStream, 1);
saveFileDialog1.Title = "保存Scene文档";
saveFileDialog1.Filter = "保存Scene文档(*.sxd)|*.sxd";
saveFileDialog1.ShowDialog();
string filename = saveFileDialog1.FileName;
mbStream.SaveToFile(filename);
MessageBox.Show("OK");
//open engine-saved sxd
openFileDialog1.Title = "打开Scene文档";
openFileDialog1.Filter = "Scene文档(*.sxd)|*.sxd";
openFileDialog1.ShowDialog();
string filename = openFileDialog1.FileName;
if (axSceneControl1.CheckSxFile(filename))
axSceneControl1.LoadSxFile(filename);
else
{
IScene pScene = axSceneControl1.Scene;
IMemoryBlobStream mbStream = new MemoryBlobStreamClass();
IObjectStream objectStream = new ObjectStreamClass();
mbStream.LoadFromFile(filename);
IPersistStream pPersistStream = (ESRI.ArcGIS.esriSystem.IPersistStream)pScene;
objectStream.Stream = mbStream;
pPersistStream.Load(objectStream);
}
要回复问题请先登录或注册