通过IFeature.Delete方法删除要素
/// <summary>
/// 通过IFeature.Delete方法删除要素
/// </summary>
/// <param name="pFeatureclass">要素类</param>
/// <param name="strWhereClause">查询条件</param>
public static void DeleteFeatureByIFeature(IFeatureClass pFeatureclass, string strWhereClause)
{
IQueryFilter pQueryFilter = new QueryFilterClass();
pQueryFilter.WhereClause = strWhereClause;
IFeatureCursor pFeatureCursor = pFeatureclass.Search(pQueryFilter, false);
IFeature pFeature = pFeatureCursor.NextFeature();
while (pFeature != null)
{
pFeature.Delete();
pFeature = pFeatureCursor.NextFeature();
}
}
通过IFeatureCursor.DeleteFeature方法删除要素
/// <summary>
/// 通过IFeatureCursor.DeleteFeature方法删除要素
/// </summary>
/// <param name="pFeatureclass">要素类</param>
/// <param name="strWhereClause">查询条件</param>
public static void DeleteFeatureByIFeatureCursor(IFeatureClass pFeatureclass, string strWhereClause)
{
IQueryFilter pQueryFilter = new QueryFilterClass();
pQueryFilter.WhereClause = strWhereClause;
IFeatureCursor pFeatureCursor = pFeatureclass.Update(pQueryFilter, false);
IFeature pFeature = pFeatureCursor.NextFeature();
while (pFeature != null)
{
pFeatureCursor.DeleteFeature();
pFeature = pFeatureCursor.NextFeature();
}
}
通过ITable.DeleteSearchedRows方法删除要素
/// <summary>
/// 通过ITable.DeleteSearchedRows方法删除要素
/// </summary>
/// <param name="pFeatureclass">要素类</param>
/// <param name="strWhereClause">查询条件</param>
public static void DeleteFeatureByITable(IFeatureClass pFeatureclass, string strWhereClause)
{
IQueryFilter pQueryFilter = new QueryFilterClass();
pQueryFilter.WhereClause = strWhereClause;
ITable pTable = pFeatureclass as ITable;
pTable.DeleteSearchedRows(pQueryFilter);
}
Python调用DeleteFeatures 工具删除
示例 1(Python 窗口)
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.CopyFeatures_management("majorrds.shp", "C:/output/output.gdb/majorrds2")
arcpy.DeleteFeatures_management("C:/output/output.gdb/majorrds2")
示例 2(独立脚本)
# Name: DeleteFeatures_Example2.py
# Description: Delete features from a feature class based on an expression
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/airport.gdb"
# Set local variables
inFeatures = "parcels"
outFeatures = "C:/output/output.gdb/new_parcels"
tempLayer = "parcelsLayer"
expression = arcpy.AddFieldDelimiters(tempLayer, "PARCEL_ID") + " = 'Cemetery'"
# Execute CopyFeatures to make a new copy of the feature class
arcpy.CopyFeatures_management(inFeatures, outFeatures)
# Execute MakeFeatureLayer
arcpy.MakeFeatureLayer_management(outFeatures, tempLayer)
# Execute SelectLayerByAttribute to determine which features to delete
arcpy.SelectLayerByAttribute_management(tempLayer, "NEW_SELECTION",
expression)
# Execute GetCount and if some features have been selected, then
# execute DeleteFeatures to remove the selected features.
if int(arcpy.GetCount_management(tempLayer).getOutput(0)) > 0:
arcpy.DeleteFeatures_management(tempLayer)