在ArcGIS10中AO编辑操作

0
分享 2014-12-28
在ArcGIS10中AO进行编辑出现了颠覆性的改变,一改以前版本的编辑工具、编辑任务,而是通过模版和图层关联进行编辑操作。其中涉及到IEditTemplate,正是由这个IEditTemplate的接口来实现地图的编辑操作,那么如何进行编辑操作呢?首先需要取到IEditor3接口的实例和IEditTemplate接口的实例。下面代码将展示如何获得这两个接口的实例
privateIApplication m_application; private IEditor3 m_editor;
m_application =ArcMap.Application;
UID editorUid =new UID(); editorUid.Value = “esriEditor.Editor”; m_editor = m_application.FindExtensionByCLSID(editorUid) as IEditor3; m_editTemplate = m_editor.CurrentTemplate;
if(m_editTemplate == null) { //Create a single template forthe selected layer. ILayer editLayer =m_document.SelectedLayer; IEditTemplateFactoryeditTemplateFact = new EditTemplateFactoryClass(); IEditTemplatenewEditTemplate = editTemplateFact.Create(“Building”, m_featurelayer); m_editTemplate =newEditTemplate; //Add thetemplate. IArraytemplateArray = new ArrayClass(); templateArray.Add(m_editTemplate); m_editor.AddTemplates(templateArray); m_editor.CurrentTemplate= m_editTemplate; }
此时编辑模版将被获得并且与FeatureLayer相关联就可以进行编辑操作了,添加点要素,然后对新添加的点要素进行高亮显示
IPoint pt = new PointClass(); pt.X = 123.3456; pt.Y = 41.3456; IFeature m_feature = m_featureclass.CreateFeature(); m_feature.Shape = pt; m_editTemplate.SetDefaultValues(m_feature); m_feature.Store(); m_document.FocusMap.SelectFeature(m_featurelayer, m_feature); m_document.ActiveView.Refresh();
从以上代码中我们可以看出,这种操作与ArcGIS9中的AO操作截然不同,是两种模式。
文章来源:http://blog.csdn.net/sydbc/article/details/17791117

0 个评论

要回复文章请先登录注册