Object .net 中Map对象保存与关闭

0 投票
调用 ((MapControl)control).Map.Close()关闭地图的时候是默认了要保存编辑内容的吗,怎么在关闭当前地图的时候能不保存对地图做出的编辑呢
3月 29, 2017 分类:  367次浏览 | 用户: YYM 才疏学浅 (17 分)
修改于 3月 29, 2017 用户:YYM

1个回答

0 投票
你好,请问你用的产品是iObjects .NET还是iObjects Java还是iObjects C++
3月 29, 2017 用户: 胡林 登峰造极 (5,985 分)
是在object .net里面
你好,直接关闭地图,是不会保存编辑内容的,对地图操作后,必须保存地图才会将编辑后的新地图保存到工作空间的地图节点下面
我调用m_mapcontrol.Action=SuperMap.UI.Action.CreatePolyline设置了当前状态为创建折线,然后用鼠标在地图的可编辑线图层里面画了一条线,然后调用 m_mapcontrol.Map.Close()关闭当前地图。但是当我重新打开地图的时候这条新添加的折线确实也还存在啊,我也没调用什么保存的方法,有没有其它地方会影响到地图编辑的保存的呢
这是因为你创建的折线,直接把折线数据记录在数据集里面了,这样肯定改变了地图。有两个方法解决。

1.把对象绘制到跟踪图层上,这样直接关闭地图的时候就不会保存对象

2.在开始编辑图层之前,记录图层对应数据集中最后一条记录的smid,在直接关闭地图的是时候,把记录的smid之后的对象全部删除
哦,知道了,谢谢.那是不是比较好的方法可以用调用EditHistory.BatchCancel()来撤销对地图的操作呢
这个也是可以的,方法很多,重点的要记录到开始编辑时候对象的索引,另外跟踪图层是不会保存到数据集里面的,可以好好利用这个接口
...