Я очень новичок в использовании QGIS, у меня есть файл формы точек и файл формы полигона. Я хотел бы выбрать все полигоны, которые имеют по крайней мере одну точку в них. Проблема, с которой я сталкиваюсь, - это то, как долго это происходит. У меня 1 миллион точек и около 320 000 полигонов, поэтому использование пространственного запроса занимает слишком много времени. Я слышал, что мне нужно написать скрипт python с пространственной индексацией, чтобы получить практически быстрый результат, но я понятия не имею, как подойти к этому. Любая помощь будет принята с благодарностью.QGIS Выберите полигоны, которые пересекают точки с помощью python
То, что я пытался сколотить из других вопросов переполнения стека:
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
Это подбрасывает NameError: имя «я» не определен