Ich bin sehr neu in der Verwendung von QGIS, was ich habe, ist eine Punkte Shapefile und ein Polygon Shapefile. Ich möchte alle Polygone auswählen, die mindestens einen Punkt enthalten. Das Problem ist, wie lange das dauert. Ich habe 1 Million Punkte und ungefähr 320.000 Polygone, also dauert die Verwendung von räumlichen Abfragen viel zu lange. Ich habe gehört, dass ich ein Python-Skript mit räumlicher Indexierung schreiben müsste, um ein möglichst schnelles Ergebnis zu erhalten, aber ich habe keine Ahnung, wie ich das angehen soll. Jede Hilfe würde sehr geschätzt werden.QGIS Wählen Sie Polygone, die Punkte mit Python kreuzen
Was ich versucht habe, zusammen Fragen aus anderen Stack-Überlauf schustern ist:
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
Dies wirft einen Nameerror: Name ‚Selbst‘ nicht
definiert ist