首页 / 浏览问题 / 组件GIS / 问题详情
绘制并保存三维模型
10EXP 2017年12月18日
iObjects.NET,我动态绘制了一个GeoBox,但是发现Layer3DKML没有添加模型的方法(iDesktop中是可以的),怎么添加并保存呢?

GeoBox box = new GeoBox();
box.BottomSize = new Size2D(200, 100);
box.Height = 200;
box.Position = m_SceneControl.Scene.PixelToGlobe(new System.Drawing.Point(e.X, e.Y));
// 如何将该GeoBox添加到KML图层并保存
//((Layer3DKML)m_SceneControl.Scene.Layers[UserDraw]).Add()???

1个回答

您好,可以用layer3dkml.features.add去添加对象。
5,985EXP 2017年12月18日

谢谢!还有2个问题:

1. 添加长方体对象之后,我用鼠标操作调整了一下大小。然后鼠标点击了其他地方,该长方体大小又恢复添加时的大小,怎么保存修改后的大小;

2. 我调用Workspace.Save方法,然后关闭重新打开,发现添加的长方体并没有保存。

请赐教!

第一个问题没有重现,你可以在桌面试试看有没有问题,没问题的话引用桌面Bin包下的相关动态库到你自己的工程试试呢

第二个问题得先保存场景再保存工作空间,scene.toxml可以将场景输入成xml,再使用workspace.scenes.add(刚刚输出的xml)
kml图层怎么保存呢?
保存了场景就保存了kml的连接信息

请问在保存场景时,“保存场景中的KML图层文件”,这个选项对应代码中的哪个属性?

这是上层自己做的判断,没有接口。
iDesktop如果在保存的时候,我没有“勾选保存场景中的KML图层文件”,那么新添加到KML图层中的长方体就不会保存,重新打开时是没有的。

iObject.NET然后我在代码中如下调用,同样也不能保存场景中的KML图层,但是可以保存场景。新增加的长方体重新打开是没有的,所以有疑问是不是要另外针对KML图层做保存操作呢?要调用哪个方法。麻烦再帮忙看看,谢谢

m_Workspace.Scenes.SetSceneXML(m_SceneControl.Scene.Name, m_SceneControl.Scene.ToXML());
m_Workspace.Save();
是KML没保存上还是模型没保存上,添加模型之后用layer3dkml.updatedata试试呢
经过多次尝试,刚搞定了,KML图层保存要调用这个方法。谢谢指导!

layer3D.Features.ToKMLFile(layer3D.DataName);
保存对象确实需要,保存kml不需要
...