Estoy aprendiendo pyqgis y trato de encontrar aquellos polígonos en una capa que se cruzan con polígonos en otra capa. Parece muy trivial, y en GIS.SE hay varias preguntas similares que me sugieren (con mis limitados conocimientos de python/pyqgis) que esto debería funcionar:
#ausschluss and gebaeude are QgsVectorLayers with Polygons
#(shapefiles with the same crs and clearly intersecting)
gebaeude.setSelectedFeatures([]) #deselects everything
selections=[] #declares it is a list
for f in gebaeude.getFeatures():
for a in ausschluss.getFeatures():
if a.geometry().intersects(f.geometry()):
#same result with .within() and even with a and f switched (the docs aren't that clear on that)
selections.append( f.id() )
break #only one or less intersection are possible
gebaeude.setSelectedFeatures(selections)
gebaeude.invertSelection()
#gives 0, 78137 an 78137 (no intersection found)
print len(selections)
print gebaeude.selectedFeatureCount()
print gebaeude.featureCount()
¿Qué es lo que estoy haciendo mal?
Edición: Ejecutando QGis 2.8.3 en OS X (10.8.5) con el KyngChaos-Longterm-Built