// 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);
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() }
// 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);
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.