QGIS 표현식 엔진은 다음 QgsFeatureRequest.setFilterExpression( unicode )
방법을 사용하여이를 수행 할 수 있습니다 (QGIS 2.2부터).
request = QgsFeatureRequest().setFilterExpression( u'"Counties" = \'Norwich\'' )
it = l.getFeatures( request )
QGIS 2.10부터는 이런 방식으로 필터링하면 다른 유형의 필터링 (파이썬 구현과 같은)에 비해 추가 성능이 제공 될 수도 있습니다.
기본적으로 다음 세 가지 조건이 충족되는 경우 적용됩니다.
postgis 공급자와 함께 계층을 사용하고 있습니다 . 현재 (2.16) postgis 공급자 이외의 많은 것 (Spatialite, ogr, oracle ...)이이를 구현하고 있습니다.
- 귀하의 표현이 지나치게 복잡하지 않습니다 (것 같은
>
, =
, IN
, NOT NULL
... 지원)
- 설정> 옵션> 데이터 소스> 데이터 소스 처리> postgres 서버 측에서 표현식 실행 에서이 기능을 활성화했습니다
- 데이터베이스 테이블에서 적절한 인덱스를 사용하면 성능 이점이 최적입니다.
QGIS 3.0을 사용하면 간단하게 수행 할 수도 있습니다
features = l.getFeatures('"Counties" = \'Norwicth\'')