Lo que estoy tratando de hacer: bucle a través de un archivo de forma de punto y seleccionar cada punto que cae en un polígono.
El siguiente código está inspirado en un ejemplo de consulta espacial que encontré en un libro:
mitte_path = r"D:\PythonTesting\SelectByLocation\mitte.shp"
punkte_path = r"D:\PythonTesting\SelectByLocation\punkte.shp"
polygon = QgsVectorLayer(mitte_path, 'Mitte', 'ogr')
points = QgsVectorLayer(punkte_path, 'Berlin Punkte', 'ogr')
QgsMapLayerRegistry.instance().addMapLayer(polygon)
QgsMapLayerRegistry.instance().addMapLayer(points)
polyFeatures = polygon.getFeatures()
pointsCount = 0
for poly_feat in polyFeatures:
polyGeom = poly_feat.geometry()
pointFeatures = points.getFeatures(QgsFeatureRequest().setFilterRect(polyGeom.boundingBox()))
for point_feat in pointFeatures:
points.select(point_feat.id())
pointsCount += 1
print 'Total:',pointsCount
Esto funciona, y selecciona conjuntos de datos, pero el problema es que selecciona por el cuadro delimitador por lo tanto, obviamente, devolver los puntos que no me interesan:
¿Cómo podría ir sólo a devolver puntos dentro de el polígono sin usar qgis:selectbylocation ?
He intentado usar el dentro() y intersecta() pero como no conseguía que funcionaran, recurrí al código anterior. Pero quizás son la clave después de todo.