QGIS API Documentation
3.16.0-Hannover (43b64b13f3)
|
Go to the documentation of this file.
15 #ifndef QGSVECTORLAYERFEATUREITERATOR_H
16 #define QGSVECTORLAYERFEATUREITERATOR_H
18 #include "qgis_core.h"
131 bool close()
override;
148 void addJoinedAttributesCached(
QgsFeature &f,
const QVariant &joinValue )
const;
149 void addJoinedAttributesDirect(
QgsFeature &f,
const QVariant &joinValue )
const;
153 bool isValid()
const override;
157 bool fetchFeature(
QgsFeature &feature )
override;
172 void prepareJoin(
int fieldIdx )
SIP_SKIP;
175 void prepareExpression(
int fieldIdx )
SIP_SKIP;
181 void prepareField(
int fieldIdx )
SIP_SKIP;
254 bool mHasVirtualAttributes;
261 void createExpressionContext();
262 std::unique_ptr<QgsExpressionContext> mExpressionContext;
266 QList< int > mPreparedFields;
267 QList< int > mFieldsToPrepare;
270 QList< FetchJoinInfo > mOrderedJoinInfoList;
276 bool prepareOrderBy(
const QList<QgsFeatureRequest::OrderByClause> &orderBys )
override;
281 void createOrderedJoinList();
286 bool postProcessFeature(
QgsFeature &feature );
291 bool checkGeometryValidity(
const QgsFeature &feature );
293 bool mDelegatedOrderByToProvider =
false;
331 QPointer< QgsVectorLayer > mLayer;
342 QgsVectorLayerSelectedFeatureIterator(
const QgsFeatureIds &selectedFeatureIds,
347 bool close()
override;
362 #endif // QGSVECTORLAYERFEATUREITERATOR_H
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
QgsExpressionContextScope mLayerScope
virtual SpatialIndexPresence hasSpatialIndex() const
Returns an enum value representing the presence of a valid spatial index on the source,...
virtual QgsCoordinateReferenceSystem sourceCrs() const =0
Returns the coordinate reference system for features in the source.
This class contains information about how to simplify geometries fetched from a QgsFeatureIterator.
virtual void setInterruptionChecker(QgsFeedback *interruptionChecker)
Attach an object that can be queried regularly by the iterator to check if it must stopped.
bool nextFeatureFilterExpression(QgsFeature &f) override
Overrides default method as we only need to filter features in the edit buffer while for others filte...
QgsFeatureMap mAddedFeatures
const QgsCoordinateReferenceSystem & crs
Container of fields for a vector layer.
QgsAttributeList mDeletedAttributeIds
An interface for objects which provide features via a getFeatures method.
QgsChangedAttributesMap mChangedAttributeValues
Type
The WKB type describes the number of dimensions a geometry has.
Abstract interface for generating an expression context scope.
QMap< QgsFeatureId, QgsAttributeMap > QgsChangedAttributesMap
QList< int > QgsAttributeList
A rectangle specified with double values.
Helper template that cares of two things: 1.
QgsGeometryMap mChangedGeometries
This class wraps a request for features to a vector layer (or directly its vector data provider).
int joinField
Index of field (of the joined layer) must have equal value.
QgsFeatureSource subclass for the selected features from a QgsVectorLayer.
QgsVectorLayer * joinLayer
Resolved pointer to the joined layer.
virtual QString sourceName() const =0
Returns a friendly display name for the source.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
QList< QgsField > mAddedAttributes
SpatialIndexPresence
Enumeration of spatial index presence states.
Manages joined fields for a vector layer.
Base class that can be used for any class that is capable of returning features.
virtual QgsFeatureIterator getFeatures(const QgsFeatureRequest &request=QgsFeatureRequest()) const =0
Returns an iterator for the features in the source.
Defines left outer join from our vector layer to some other vector layer.
Buffers information about expression fields for a vector layer.
QMap< QgsFeatureId, QgsFeature > QgsFeatureMap
int indexOffset
At what position the joined fields start.
QSet< QgsFeatureId > QgsFeatureIds
virtual bool rewind()=0
reset the iterator to the starting position
This class represents a coordinate reference system (CRS).
QgsCoordinateReferenceSystem mCrs
virtual QgsFields fields() const =0
Returns the fields associated with features in the source.
Single scope for storing variables and functions for use within a QgsExpressionContext.
int targetField
Index of field (of this layer) that drives the join.
virtual long featureCount() const =0
Returns the number of features contained in the source, or -1 if the feature count is unknown.
Join information prepared for fast attribute id mapping in QgsVectorLayerJoinBuffer::updateFeatureAtt...
A geometry is the spatial representation of a feature.
virtual QgsWkbTypes::Type wkbType() const =0
Returns the geometry type for features returned by this source.
Represents a vector layer which manages a vector based data sets.
Partial snapshot of vector layer's state (only the members necessary for access to features)
virtual bool fetchFeature(QgsFeature &f)=0
If you write a feature iterator for your provider, this is the method you need to implement!...
QgsAttributeList attributes
Attributes to fetch.
virtual QgsFeatureIterator getFeatures(const QgsFeatureRequest &request=QgsFeatureRequest())=0
Gets an iterator for features matching the specified request.
QMap< QgsFeatureId, QgsGeometry > QgsGeometryMap
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
const QgsVectorLayerJoinInfo * joinInfo
Canonical source of information about the join.
Class for parsing and evaluation of expressions (formerly called "search strings").
Wrapper for iterator of features from vector data provider or vector layer.
Internal feature iterator to be implemented within data providers.
QgsFeatureIds mDeletedFeatureIds
virtual bool close()=0
end of iterating: free the resources / lock
virtual QgsExpressionContextScope * createExpressionContextScope() const =0
This method needs to be reimplemented in all classes which implement this interface and return an exp...
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features