直接贴代码吧。。。如下
private void addFeature(string layerName, IGeometry geometry)
{
ILayer layer = axMapControl1.Map.get_Layer(0);
IFeatureLayer featureLayer = layer as IFeatureLayer;
IFeatureClass featureClass = featureLayer.FeatureClass;
IDataset dataset = (IDataset)featureClass;
IWorkspace workspace = dataset.Workspace;
//开始编辑空间
IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)workspace;
workspaceEdit.StartEditing(true);
workspaceEdit.StartEditOperation();
//IFeatureBuffer featureBuffer = featureClass.CreateFeatureBuffer();
IFeatureCursor featureCursor;
//清除图层原有的要素
featureCursor = featureClass.Search(null, false);
IFeature feature;
IFeatureBuffer featureBuffer = featureClass.CreateFeatureBuffer();
feature = featureCursor.NextFeature();
while (feature != null)
{
feature.Delete();
feature = featureCursor.NextFeature();
}
//开始插入要素
featureCursor = featureClass.Insert(true);
featureBuffer.Shape = geometry;
object featureOID = featureCursor.InsertFeature(featureBuffer);
//保存要素
featureCursor.Flush();
axMapControl1.Refresh();
//完成编辑
workspaceEdit.StopEditOperation();
workspaceEdit.StopEditing(true);
System.Runtime.InteropServices.Marshal.ReleaseComObject(featureCursor);//释放指针
}
标签: arcgis二次开发
评论: