Mit der QGIS 2.4-Python-Konsole versuche ich, nur eine Teilmenge der Layer-Features anzuzeigen. Ich habe es geschafft, beide Funktionen von der Ebene zu erhalten:
featuresIterator = layer.getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4'))
und vom dataProvider:
featuresIterator = layer.dataProvider().getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4'))
(Ich bin nicht sicher, ob ich den Unterschied verstehe).
Was ich jetzt erreichen möchte, ist, nur diese Funktionen anzuzeigen. Genau so, wie man es mit dem Abfrage-Generator über die GUI tun würde. Ich weiß nicht, ob dies auf der Ebene des Renderns (das einige Features und andere nicht rendern würde) oder auf der Ebene des Datenanbieters (der der Ebene nur einen Überblick über die nur enthaltenen Daten geben würde) verwaltet werden muss die gewünschte Teilmenge) oder irgendwo dazwischen.
Antworten:
Die gesuchte Methode heißt setSubsetString
quelle