Je suis très novice dans l'utilisation de QGIS, j'ai un fichier de formes de points et un fichier de formes de polygones. Je voudrais sélectionner tous les polygones qui ont au moins un point en eux. Le problème que je rencontre est combien de temps cela prend. J'ai 1 million de points et environ 320 000 polygones, donc utiliser la requête spatiale prend beaucoup trop de temps. J'ai entendu dire que je devrais écrire un script python avec indexation spatiale pour obtenir un résultat rapidement réalisable, mais je n'ai aucune idée de la façon d'aborder cela. Toute aide serait grandement appréciée.QGIS Sélectionner des polygones qui croisent des points avec python
Ce que j'ai essayé de concocter d'autres questions débordement de la pile est:
pointProvider = self.pointLayer.dataProvider()
all_point = pointProvider.getFeatures()
delta = 0.1
for point in all_point:
searchRectangle = QgsRectangle(point.x() - delta, point.y() - delta, point.x() + delta, point.y() + delta)
candidateIDs = line_index.intesects(searchRectangle)
for candidateID in candidateIDs:
candFeature == rotateProvider.getFeatures(QgsFeatureRequest(candidateID)).next()
if candFeature.geometry().contains(point):
break
Cela jette un NameError: nom « soi » ne définit pas