: 내가 할 노력하고 무엇 루프 포인트 Shape 파일을 통해 떨어지면 각 지점 선택 에 다각형을.
다음 코드는 책에서 찾은 공간 쿼리 예제에서 영감을 얻은 것입니다.
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
이것은 작동하고 데이터 세트를 선택하지만 문제는 경계 상자로 선택 하므로 관심이없는 점을 분명히 반환 한다는 것 입니다.
qgis : selectbylocation 을 사용하지 않고 다각형 내 에서 점을 반환하는 방법은 무엇입니까?
within () 및 intersects () 메서드를 사용해 보았지만 작동하지 않기 때문에 위 코드를 사용했습니다. 그러나 아마도 그들은 결국 열쇠 일 것입니다.