QGIS katmanını python'dan nasıl filtreleyebilirim?


9

QGIS 2.4 python konsolunu kullanarak, katman özelliklerinin yalnızca bir alt kümesini görüntülemeye çalışıyorum. Özellikleri katmandan almayı başardım:

featuresIterator = layer.getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4'))

ve dataProvider'dan:

featuresIterator = layer.dataProvider().getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4'))

(Farkı anladığımdan emin değilim).

Şimdi elde etmek istediğim sadece bu özellikleri göstermektir. GUI'den bir sorgu oluşturucu kullanılarak yapılanla aynı şekilde. Bu işlemin render seviyesinde (diğerlerini değil, bazı özellikleri oluşturacak) mı yoksa veri sağlayıcısı düzeyinde mi (yalnızca katmana yalnızca aşağıdakileri içeren verilerde bir görünüm sağlar) yönetilmesi gerekip gerekmediğini bilmiyorum aranan alt küme) veya aradaki bir yerde.


@Nathan'dan cevap doğru. Ayrıca, layer.subsetString () kullanarak setSubsetString () veya Query Builder tarafından ayarlananları da alabiliriz. Boşsa, boş bir dize '' döndürülür.
Zac

Yanıtlar:


13

Aradığınız yönteme setSubsetString adı verilir

layer.setSubsetString("field=4")

Çok teşekkürler. İşlevin adı, cevabınızı yazarken setSubString değil, setSubsetString'dir. Bağlantı zaten iyi işleve işaret ediyor. Cevabınızı daha sonra başvurmak üzere düzenledim. Tekrar teşekkürler.
Jean-Philippe
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.