15 #ifndef QGSMEMORYFEATUREITERATOR_H 16 #define QGSMEMORYFEATUREITERATOR_H 27 class QgsMemoryProvider;
37 explicit QgsMemoryFeatureSource(
const QgsMemoryProvider *p );
44 std::unique_ptr< QgsSpatialIndex > mSpatialIndex;
45 QString mSubsetString;
49 friend class QgsMemoryFeatureIterator;
56 QgsMemoryFeatureIterator( QgsMemoryFeatureSource *source,
bool ownSource,
const QgsFeatureRequest &request );
58 ~QgsMemoryFeatureIterator()
override;
60 bool rewind()
override;
61 bool close()
override;
65 bool fetchFeature(
QgsFeature &feature )
override;
68 bool nextFeatureUsingList(
QgsFeature &feature );
69 bool nextFeatureTraverseAll(
QgsFeature &feature );
72 std::unique_ptr< QgsGeometryEngine > mSelectRectEngine;
74 QgsFeatureMap::const_iterator mSelectIterator;
75 bool mUsingFeatureIdList =
false;
76 QList<QgsFeatureId> mFeatureIdList;
77 QList<QgsFeatureId>::const_iterator mFeatureIdListIterator;
78 std::unique_ptr< QgsExpression > mSubsetExpression;
85 #endif // QGSMEMORYFEATUREITERATOR_H Wrapper for iterator of features from vector data provider or vector layer.
A rectangle specified with double values.
virtual QgsFeatureIterator getFeatures(const QgsFeatureRequest &request=QgsFeatureRequest())=0
Get an iterator for features matching the specified request.
Container of fields for a vector layer.
A geometry is the spatial representation of a feature.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
This class wraps a request for features to a vector layer (or directly its vector data provider)...
Base class that can be used for any class that is capable of returning features.
QMap< QgsFeatureId, QgsFeature > QgsFeatureMap
A spatial index for QgsFeature objects.
This class represents a coordinate reference system (CRS).
Helper template that cares of two things: 1.