Quantum GIS API Documentation  master-ce49b66
QgsFeatureRequest Class Reference

This class wraps a request for features to a vector layer (or directly its vector data provider). More...

#include <qgsfeaturerequest.h>

+ Collaboration diagram for QgsFeatureRequest:

List of all members.

Public Types

enum  FilterType { FilterNone, FilterRect, FilterFid }
enum  Flag { NoFlags = 0, NoGeometry = 1, SubsetOfAttributes = 2, ExactIntersect = 4 }

Public Member Functions

 QgsFeatureRequest ()
 construct a default request: for all features get attributes and geometries
 QgsFeatureRequest (QgsFeatureId fid)
 construct a request with feature ID filter
 QgsFeatureRequest (const QgsRectangle &rect)
 construct a request with rectangle filter
 QgsFeatureRequest (const QgsFeatureRequest &rh)
 copy constructor
const QgsFeatureIdfilterFid () const
const QgsRectanglefilterRect () const
FilterType filterType () const
const Flags & flags () const
QgsFeatureRequestsetFilterFid (QgsFeatureId fid)
 Set feature ID that should be fetched.
QgsFeatureRequestsetFilterRect (const QgsRectangle &rect)
 Set rectangle from which features will be taken.
QgsFeatureRequestsetFlags (Flags flags)
 Set flags that affect how features will be fetched.
QgsFeatureRequestsetSubsetOfAttributes (const QgsAttributeList &attrs)
 Set a subset of attributes that will be fetched.
QgsFeatureRequestsetSubsetOfAttributes (const QStringList &attrNames, const QgsFields &fields)
 Set a subset of attributes by names that will be fetched.
const QgsAttributeListsubsetOfAttributes () const

Protected Attributes

QgsAttributeList mAttrs
FilterType mFilter
QgsFeatureId mFilterFid
QgsRectangle mFilterRect
Flags mFlags

Detailed Description

This class wraps a request for features to a vector layer (or directly its vector data provider).

The request may apply a filter to fetch only a particular subset of features. Currently supported filters:

  • no filter - all features are returned
  • feature id - only feature that matches given feature id is returned
  • rectangle - only features that intersect given rectangle should be fetched. For the sake of speed, the intersection is often done only using feature's bounding box. There is a flag ExactIntersect that makes sure that only intersecting features will be returned.

For efficiency, it is also possible to tell provider that some data is not required:

  • NoGeometry flag
  • SubsetOfAttributes flag

The options may be chained, e.g.: QgsFeatureRequest().setFilterRect(QgsRectangle(0,0,1,1)).setFlags(QgsFeatureRequest::ExactIntersect)

Examples:

Definition at line 55 of file qgsfeaturerequest.h.


Member Enumeration Documentation

Enumerator:
FilterNone 

No filter is applied.

FilterRect 

Filter using a rectangle.

FilterFid 

Filter using feature ID.

Definition at line 67 of file qgsfeaturerequest.h.

Enumerator:
NoFlags 
NoGeometry 

Do not fetch geometry.

SubsetOfAttributes 

Fetch only a subset of attributes (setSubsetOfAttributes sets this flag)

ExactIntersect 

Use exact geometry intersection (slower) instead of bounding boxes.

Definition at line 58 of file qgsfeaturerequest.h.


Constructor & Destructor Documentation

construct a default request: for all features get attributes and geometries

Definition at line 21 of file qgsfeaturerequest.cpp.

construct a request with feature ID filter

Definition at line 27 of file qgsfeaturerequest.cpp.

QgsFeatureRequest::QgsFeatureRequest ( const QgsRectangle rect) [explicit]

construct a request with rectangle filter

Definition at line 34 of file qgsfeaturerequest.cpp.

copy constructor

Definition at line 41 of file qgsfeaturerequest.cpp.

References mAttrs, mFilter, mFilterFid, mFilterRect, and mFlags.


Member Function Documentation

Set rectangle from which features will be taken.

Empty rectangle removes the filter.

Definition at line 51 of file qgsfeaturerequest.cpp.

References FilterRect, mFilter, and mFilterRect.

Referenced by QgsComposerAttributeTable::getFeatureAttributes().

QgsFeatureRequest & QgsFeatureRequest::setSubsetOfAttributes ( const QStringList &  attrNames,
const QgsFields fields 
)

Set a subset of attributes by names that will be fetched.

Definition at line 79 of file qgsfeaturerequest.cpp.

References QgsFields::count(), mAttrs, mFlags, and SubsetOfAttributes.


Member Data Documentation

Definition at line 114 of file qgsfeaturerequest.h.

Referenced by QgsFeatureRequest(), and setFilterFid().

Definition at line 113 of file qgsfeaturerequest.h.

Referenced by QgsFeatureRequest(), and setFilterRect().

Flags QgsFeatureRequest::mFlags [protected]

Definition at line 115 of file qgsfeaturerequest.h.

Referenced by QgsFeatureRequest(), setFlags(), and setSubsetOfAttributes().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines