Class: QgsFeatureSource

class qgis.core.QgsFeatureSource

Bases: sip.wrapper

An interface for objects which provide features via a getFeatures method.

Methods

allFeatureIds

Returns a list of all feature IDs for features present in the source.

featureCount

Returns the number of features contained in the source, or -1 if the feature count is unknown.

fields

Returns the fields associated with features in the source.

getFeatures

Returns an iterator for the features in the source.

hasFeatures

Determines if there are any features available in the source.

hasSpatialIndex

Returns an enum value representing the presence of a valid spatial index on the source, if it can be determined.

materialize

Materializes a request (query) made against this feature source, by running it over the source and returning a new memory based vector layer containing the result.

maximumValue

Returns the maximum value for an attribute column or an invalid variant in case of error.

minimumValue

Returns the minimum value for an attribute column or an invalid variant in case of error.

sourceCrs

Returns the coordinate reference system for features in the source.

sourceExtent

Returns the extent of all geometries from the source.

sourceName

Returns a friendly display name for the source.

uniqueValues

Returns the set of unique values contained within the specified fieldIndex from this source.

wkbType

Returns the geometry type for features returned by this source.

Attributes

FeaturesAvailable

FeaturesMaybeAvailable

NoFeaturesAvailable

SpatialIndexNotPresent

SpatialIndexPresent

SpatialIndexUnknown

class FeatureAvailability

Bases: int

FeaturesAvailable = 1
FeaturesMaybeAvailable = 2
NoFeaturesAvailable = 0
SpatialIndexNotPresent = 1
class SpatialIndexPresence

Bases: int

SpatialIndexPresent = 2
SpatialIndexUnknown = 0
allFeatureIds(self) → object

Returns a list of all feature IDs for features present in the source.

Return type

object

featureCount(self) → int

Returns the number of features contained in the source, or -1 if the feature count is unknown.

Return type

int

fields(self) → QgsFields

Returns the fields associated with features in the source.

Return type

QgsFields

getFeatures(self, request: QgsFeatureRequest = QgsFeatureRequest()) → QgsFeatureIterator

Returns an iterator for the features in the source. An optional request can be used to optimise the returned iterator, eg by restricting the returned attributes or geometry.

Parameters

request (QgsFeatureRequest = QgsFeatureRequest()) –

Return type

QgsFeatureIterator

hasFeatures(self) → QgsFeatureSource.FeatureAvailability

Determines if there are any features available in the source.

New in version 3.2.

Return type

QgsFeatureSource.FeatureAvailability

hasSpatialIndex(self) → QgsFeatureSource.SpatialIndexPresence

Returns an enum value representing the presence of a valid spatial index on the source, if it can be determined.

If QgsFeatureSource.SpatialIndexUnknown is returned then the presence of an index cannot be determined.

New in version 3.10.1.

Return type

QgsFeatureSource.SpatialIndexPresence

materialize(self, request: QgsFeatureRequest, feedback: QgsFeedback = None) → QgsVectorLayer

Materializes a request (query) made against this feature source, by running it over the source and returning a new memory based vector layer containing the result. All settings from feature request will be honored.

If a subset of attributes has been set for the request, then only those selected fields will be present in the output layer.

The CRS for the output layer will match the input layer, unless QgsFeatureRequest.setDestinationCrs() has been called with a valid QgsCoordinateReferenceSystem. In this case the output layer will match the QgsFeatureRequest.destinationCrs() CRS.

The returned layer WKB type will match wkbType(), unless the QgsFeatureRequest.NoGeometry flag is set on the request. In that case the returned layer will not be a spatial layer.

An optional feedback argument can be used to cancel the materialization before it has fully completed.

The returned value is a new instance and the caller takes responsibility for its ownership.

New in version 3.0.

Parameters
Return type

QgsVectorLayer

maximumValue(self, fieldIndex: int) → Any

Returns the maximum value for an attribute column or an invalid variant in case of error. The base class implementation uses a non-optimised approach of looping through all features in the source.

See also

minimumValue()

See also

uniqueValues()

Parameters

fieldIndex (int) –

Return type

Any

minimumValue(self, fieldIndex: int) → Any

Returns the minimum value for an attribute column or an invalid variant in case of error. The base class implementation uses a non-optimised approach of looping through all features in the source.

See also

maximumValue()

See also

uniqueValues()

Parameters

fieldIndex (int) –

Return type

Any

sourceCrs(self) → QgsCoordinateReferenceSystem

Returns the coordinate reference system for features in the source.

Return type

QgsCoordinateReferenceSystem

sourceExtent(self) → QgsRectangle

Returns the extent of all geometries from the source. The base class implementation uses a non-optimised approach of looping through all features in the source.

Return type

QgsRectangle

sourceName(self) → str

Returns a friendly display name for the source. The returned value can be an empty string.

Return type

str

uniqueValues(self, fieldIndex: int, limit: int = -1) → Set[Any]

Returns the set of unique values contained within the specified fieldIndex from this source. If specified, the limit option can be used to limit the number of returned values. The base class implementation uses a non-optimised approach of looping through all features in the source.

See also

minimumValue()

See also

maximumValue()

Parameters
  • fieldIndex (int) –

  • limit (int = -1) –

Return type

Set[Any]

wkbType(self) → QgsWkbTypes.Type

Returns the geometry type for features returned by this source.

Return type

QgsWkbTypes.Type