使用QGIS 2.4 python控制台,我试图仅显示图层功能的子集。我已经设法从图层中获得了两个功能:
featuresIterator = layer.getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4'))
并从dataProvider中:
featuresIterator = layer.dataProvider().getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4'))
(我不确定是否会有所区别)。
我现在想要实现的是仅显示这些功能。使用与GUI中的查询生成器完全相同的方法。我不知道是否必须在渲染级别(将渲染某些功能而不是其他功能)或数据提供者的级别(仅向图层提供仅包含数据的视图的视图)进行管理所需的子集),或介于两者之间的某处。
@Nathan的答案是正确的。我们还可以使用layer.subsetString()获取setSubsetString()或查询生成器设置的内容。如果为空,则返回空字符串“”。
—
扎克