[Qgis-developer] QgsFeatureRerquest filters are mutually exclusive? why?
Luigi Pirelli
luipir at gmail.com
Sat Dec 20 03:34:28 PST 2014
filter combination works only if setting attribute filter with
http://qgis.org/api/classQgsVectorLayer.html#a6ad141dfa9a0243c0c1c9fa422379e40
a snippet that works is
# iteration getting only selected features
rect = QgsRectangle( 1223070.695, 2293653.357 , 9046974.211, 4184988.662)
request = QgsFeatureRequest()
request.setSubsetOfAttributes([0, 2])
myVector.setSubsetString('"AREA_MI" > 1000') <--------------------
request.setFilterRect( rect )
#request.setFlags(QgsFeatureRequest.ExactIntersect or
QgsFeatureRequest.SubsetOfAttributes)
for index, feature in enumerate( myVector.getFeatures( request ) ):
print "The record %d has ID %d" % ( index, feature.id() )
regards Luigi Pirelli
On 20 December 2014 at 11:57, Luigi Pirelli <luipir at gmail.com> wrote:
> Hi,
>
> I realised that some filter in QgsFeatureRequest are mutually exclusive
>
> the following gist on alaska.shp (in alaska crs)
> https://gist.github.com/luipir/fcbc318304944962dfec#file-gistfile1-py
>
> return 283 Elements
>
> but uncomment spatial filter request.setFilterRect( rect ) return only
> 10 records
>
> seems that the mutual exclusivity is coded here
> http://qgis.org/api/qgsvectorlayerfeatureiterator_8cpp_source.html#l00126
>
> and mFilter in QgsFeatureRequest is NOT managed in OR during setting
> in http://qgis.org/api/qgsfeaturerequest_8cpp_source.html
>
> it's a bug or a feature or not implemented or my fault in using filtering?
>
> regards, Luigi Pirelli
More information about the Qgis-developer
mailing list