I want to create a tool layer in QGIS 2.4 that will select any vector features that intersect with that point. In my script I tried the following function:
def selectFeature(self, point, button):
pntGeom = QgsGeometry.fromPoint(point)
pntBuff = pntGeom.buffer( (self.canvas.mapUnitsPerPixel() * 2),0)
rect = pntBuff.boundingBox()
cLayer = self.canvas.currentLayer()
selectList = []
if cLayer:
provider = cLayer.dataProvider()
feat = QgsFeature()
provider.select([],rect)
while provider.nextFeature(feat):
if feat.geometry().intersects(pntGeom):
selectList.append(feat.id())
cLayer.setSelectedFeatures(selectList)
But I have the following error:
AttributeError: 'QgsVectorDataProvider' object has no attribute 'select'
in line "provider.select([],rect)"
What am I doing wrong?
Best Answer
I've tried your code, but it not work. It can't find selected feature. So, I make an edit from your code. This is the edited code:
I am sorry I can't add this answer as comment, because my reputation are not enough. I hope this can help others.