// Create a queryFilter with where clause = to the OID of the selected feature in the map
queryFilter = new QueryFilter();
// ex: OBJECTID = 10
String strWhereClause = fc.getOIDFieldName() + " = " + featLayer.getSelectionSet().getIDs().next();
queryFilter.setWhereClause(strWhereClause);
// Use IFeatureClass.Update to populate IFeatureCursor.
IFeatureCursor updateCursor = fc.IFeatureClass_update(queryFilter, false);
IFeature feature = null;
while ((feature = updateCursor.nextFeature()) != null) {
updateCursor.deleteFeature();
}
// If the cursor is no longer needed, release it.
Cleaner.release(updateCursor);
IEnumIDs oids = (IEnumIDs) featLayer.getSelectionSet().getIDs(); IEnumIDs oids2 = (IEnumIDs) featLayer.getSelectionSet().getIDs(); while((oids.next()) != -1){ fc.getFeature(oids2.next()).delete(); oids.reset(); }
GeoProcessor gp = new GeoProcessor();
DeleteFeatures delete = new DeleteFeatures();
delete.setInFeatures(featLayer);
gp.execute(delete, null);
// Get a cursor on selected features IFeatureCursor cursor = null; featLayer.getSelectionSet().search(null, false, cursor); // Delete all features in the cursor IFeature feature = null; while ((feature = cursor.nextFeature()) != null) { cursor.deleteFeature(); // Or maybe try feature.delete() }
fc = (IFeatureClass) featLayer.getFeatureClass(); // Create a queryFilter with where clause queryFilter = new QueryFilter(); // Create two enums. One to iterate and one to get the IDs without a complex for statement IEnumIDs oids = (IEnumIDs) featLayer.getSelectionSet().getIDs(); IEnumIDs oids2 = (IEnumIDs) featLayer.getSelectionSet().getIDs(); int count = featLayer.getSelectionSet().getCount(); int x = 0; // Build a long WhereClause from all of the OBJECTIDs concatenated together. StringBuilder sb = new StringBuilder(); sb.append(fc.getOIDFieldName() + " = "); while((oids.next()) != -1){ if(x < ((count) - 1)){ sb.append(oids2.next()); sb.append(" OR " + fc.getOIDFieldName() + " = "); x++; } else { sb.append(oids2.next()); } } queryFilter.setWhereClause(sb.toString()); // Use IFeatureClass.Update to populate IFeatureCursor. IFeatureCursor updateCursor = fc.IFeatureClass_update(queryFilter, false); IFeature feature = null; while ((feature = updateCursor.nextFeature()) != null) { updateCursor.deleteFeature(); } // Clear the selection set, because deleting this way doesn't notify the table or the TOC to udpate. featLayer.clear(); // optionally call updateContents on map document // If the cursor is no longer needed, release it. Cleaner.release(updateCursor);
// Get a cursor on selected features IFeatureCursor cursor = null; featLayer.getSelectionSet().search(null, false, cursor); // Delete all features in the cursor IFeature feature = null; while ((feature = cursor.nextFeature()) != null) { cursor.deleteFeature(); // Or maybe try feature.delete() } // Clear the selection set, because deleting this way doesn't notify the table or the TOC to udpate. featLayer.clear(); // optionally call updateContents on map document // If the cursor is no longer needed, release it. Cleaner.release(cursor);