Deleting a vector layer feature
In this recipe, we'll completely remove a feature, including the geometry and attributes, from a layer.
Getting ready
You will need the New York City museums' shapefile used in other recipes, which you can download as a ZIP file from https://geospatialpython.googlecode.com/svn/NYC_MUSEUMS_GEO.zip.
Extract this shapefile to /qgis_data/nyc
.
How to do it...
All we need to do is load the layer and then delete the desired features by ID, using the layer's data provider:
Start QGIS.
From the Plugins menu, select Python Console.
First, load and validate the layer:
vectorLyr = QgsVectorLayer('/qgis_data/nyc/NYC_MUSEUMS_GEO.shp', 'Museums' , "ogr") vectorLyr.isValid()
Next, specify a Python list containing feature IDs. In this case, we have two:
vectorLyr.dataProvider().deleteFeatures([ 22, 95 ])
How it works...
This operation cannot be simpler or better designed. There are a number of ways in which we can programmatically fill a Python list with feature IDs. For example, we...