Subgroup: Abstract

Class: QgsAbstractFeatureIterator

class qgis.core.QgsAbstractFeatureIterator(request: QgsFeatureRequest)

Bases: sip.wrapper

base class constructor - stores the iteration parameters

QgsAbstractFeatureIterator(QgsAbstractFeatureIterator)

Internal feature iterator to be implemented within data providers

Methods

close end of iterating: free the resources / lock
compileFailed Indicator if there was an error when sending the compiled query to the server.
compileStatus Returns the status of expression compilation for filter expression requests.
deref Remove reference, delete if refs == 0
fetchFeature If you write a feature iterator for your provider, this is the method you need to implement!!
filterRectToSourceCrs Returns a rectangle representing the original request’s QgsFeatureRequest.filterRect() If transform is a valid coordinate transform, the return rectangle will represent the requested filterRect() transformed to the source’s coordinate reference system.
geometryToDestinationCrs Transforms feature’s geometry according to the specified coordinate transform.
isValid Returns if this iterator is valid.
nextFeature fetch next feature, return true on success
nextFeatureFilterExpression By default, the iterator will fetch all features and check if the feature matches the expression.
nextFeatureFilterFids By default, the iterator will fetch all features and check if the id is in the request.
prepareSimplification Setup the simplification of geometries to fetch using the specified simplify method
ref Add reference
rewind reset the iterator to the starting position

Signals

Attributes

Compiled
NoCompilation
PartiallyCompiled
class CompileStatus

Bases: int

Compiled = 2
NoCompilation = 0
PartiallyCompiled = 1
close(self) → bool

end of iterating: free the resources / lock

compileFailed(self) → bool

Indicator if there was an error when sending the compiled query to the server. This indicates that there is something wrong with the expression compiler.

New in version 3.2.

compileStatus(self) → QgsAbstractFeatureIterator.CompileStatus

Returns the status of expression compilation for filter expression requests.

New in version 2.16.

deref(self)

Remove reference, delete if refs == 0

fetchFeature(self, f: QgsFeature) → bool

If you write a feature iterator for your provider, this is the method you need to implement!!

Parameters:f – The feature to write to
Returns:true if a feature was written to f
filterRectToSourceCrs(self, transform: QgsCoordinateTransform) → QgsRectangle

Returns a rectangle representing the original request’s QgsFeatureRequest.filterRect() If transform is a valid coordinate transform, the return rectangle will represent the requested filterRect() transformed to the source’s coordinate reference system. Iterators should call this method and use the returned rectangle for filtering features to ensure that any QgsFeatureRequest.destinationCrs() set on the request is respected. Will throw a QgsCsException if the rect cannot be transformed from the destination CRS.

New in version 3.0.

geometryToDestinationCrs(self, feature: QgsFeature, transform: QgsCoordinateTransform)

Transforms feature’s geometry according to the specified coordinate transform. If feature has no geometry or transform is invalid then calling this method has no effect and will be shortcut. Iterators should call this method before returning features to ensure that any QgsFeatureRequest.destinationCrs() set on the request is respected.

New in version 3.0.

isValid(self) → bool

Returns if this iterator is valid. An invalid feature iterator is not able to provide a reliable source for data. If an iterator is invalid, either give up or try to send the request again (preferably after a timeout to give the system some time to stay responsive).

If you want to check if the iterator successfully completed, better use QgsFeatureIterator.isClosed()

New in version 3.0.

nextFeature(self, f: QgsFeature) → bool

fetch next feature, return true on success

nextFeatureFilterExpression(self, f: QgsFeature) → bool

By default, the iterator will fetch all features and check if the feature matches the expression. If you have a more sophisticated metodology (SQL request for the features…) and you check for the expression in your fetchFeature method, you can just redirect this call to fetchFeature so the default check will be omitted.

Parameters:f – The feature to write to
Returns:true if a feature was written to f
nextFeatureFilterFids(self, f: QgsFeature) → bool

By default, the iterator will fetch all features and check if the id is in the request. If you have a more sophisticated metodology (SQL request for the features…) and you are sure, that any feature you return from fetchFeature will match if the request was FilterFids you can just redirect this call to fetchFeature so the default check will be omitted.

Parameters:f – The feature to write to
Returns:true if a feature was written to f
prepareSimplification(self, simplifyMethod: QgsSimplifyMethod) → bool

Setup the simplification of geometries to fetch using the specified simplify method

ref(self)

Add reference

rewind(self) → bool

reset the iterator to the starting position