| 
    QGIS API Documentation
    3.26.3-Buenos Aires (65e4edfdad)
    
   | 
 
 
 
 
Go to the documentation of this file.
   46   for ( QVariantMap::const_iterator it = customVariables.constBegin(); it != customVariables.constEnd(); ++it )
 
   78   if ( vars.remove( name ) )
 
   97       const QString 
id = values.at( 0 ).toString();
 
  105       return c.variablesToMap();
 
  110       return new GetLayoutItemVariables( mLayout );
 
  123     GetLayoutMapLayerCredits( 
const QgsLayout *
c )
 
  127                                      << 
QgsExpressionFunction::Parameter( QStringLiteral( 
"layer_name_separator" ), true, QStringLiteral( 
": " ) ), QStringLiteral( 
"Layout" ) )
 
  136       const QString 
id = values.value( 0 ).toString();
 
  138       if ( 
QgsLayoutItemMap *map = qobject_cast< QgsLayoutItemMap * >( mLayout->itemById( 
id ) ) )
 
  141         const QVariantList mapLayers = 
c.variable( QStringLiteral( 
"map_layers" ) ).toList();
 
  143         const bool includeLayerNames = values.value( 1 ).toBool();
 
  144         const QString layerNameSeparator = values.value( 2 ).toString();
 
  147         for ( 
const QVariant &value : mapLayers )
 
  149           if ( 
const QgsMapLayer *layer = qobject_cast< const QgsMapLayer * >( value.value< QObject * >() ) )
 
  151             const QStringList credits = !layer->metadata().rights().isEmpty() ? layer->metadata().rights() : QStringList() << layer->attribution();
 
  152             for ( 
const QString &credit : credits )
 
  154               if ( credit.trimmed().isEmpty() )
 
  157               const QString creditString = includeLayerNames ? layer->name() + layerNameSeparator + credit
 
  160               if ( !res.contains( creditString ) )
 
  173       return new GetLayoutMapLayerCredits( mLayout );
 
  185     GetCurrentFormFieldValue( )
 
  191       const QString fieldName( values.at( 0 ).toString() );
 
  192       const QgsFeature feat( context->
variable( QStringLiteral( 
"current_feature" ) ).value<QgsFeature>() );
 
  193       if ( fieldName.isEmpty() || ! feat.isValid( ) )
 
  197       return feat.attribute( fieldName ) ;
 
  202       return new GetCurrentFormFieldValue( );
 
  215     GetCurrentParentFormFieldValue( )
 
  221       const QString fieldName( values.at( 0 ).toString() );
 
  222       const QgsFeature feat( context->
variable( QStringLiteral( 
"current_parent_feature" ) ).value<QgsFeature>() );
 
  223       if ( fieldName.isEmpty() || ! feat.isValid( ) )
 
  227       return feat.attribute( fieldName ) ;
 
  232       return new GetCurrentParentFormFieldValue( );
 
  246     GetProcessingParameterValue( 
const QVariantMap ¶ms )
 
  253       return mParams.value( values.at( 0 ).toString() );
 
  258       return new GetProcessingParameterValue( mParams );
 
  263     const QVariantMap mParams;
 
  273   scope->
addFunction( QStringLiteral( 
"current_value" ), 
new GetCurrentFormFieldValue( ) );
 
  275   scope->
setVariable( QStringLiteral( 
"current_feature" ), formFeature, 
true );
 
  276   scope->
setVariable( QStringLiteral( 
"form_mode" ), formMode, 
true );
 
  284   scope->
addFunction( QStringLiteral( 
"current_parent_value" ), 
new GetCurrentParentFormFieldValue( ) );
 
  285   scope->
setVariable( QStringLiteral( 
"current_parent_geometry" ), parentFormFeature.
geometry( ), 
true );
 
  286   scope->
setVariable( QStringLiteral( 
"current_parent_feature" ), parentFormFeature, 
true );
 
  287   scope->
setVariable( QStringLiteral( 
"parent_form_mode" ), parentFormMode, 
true );
 
  309   vars.insert( name, value );
 
  330   if ( vars.remove( name ) )
 
  342   const QStringList variableNames = layer->
customProperty( QStringLiteral( 
"variableNames" ) ).toStringList();
 
  343   const QStringList variableValues = layer->
customProperty( QStringLiteral( 
"variableValues" ) ).toStringList();
 
  346   for ( 
const QString &variableName : variableNames )
 
  348     if ( varIndex >= variableValues.length() )
 
  353     const QVariant varValue = variableValues.at( varIndex );
 
  355     scope->
setVariable( variableName, varValue, 
true );
 
  364   const QgsVectorLayer *vLayer = qobject_cast< const QgsVectorLayer * >( layer );
 
  379   QList<QgsExpressionContextScope *> scopes;
 
  398   QStringList variableNames = layer->
customProperty( QStringLiteral( 
"variableNames" ) ).toStringList();
 
  399   QStringList variableValues = layer->
customProperty( QStringLiteral( 
"variableValues" ) ).toStringList();
 
  401   variableNames << name;
 
  402   variableValues << value.toString();
 
  413   QStringList variableNames;
 
  414   QStringList variableValues;
 
  416   QVariantMap::const_iterator it = variables.constBegin();
 
  417   for ( ; it != variables.constEnd(); ++it )
 
  419     variableNames << it.key();
 
  420     variableValues << it.value().toString();
 
  474   QVariantList layersIds;
 
  476   const QList<QgsMapLayer *> layersInMap = mapSettings.
layers( 
true );
 
  477   layersIds.reserve( layersInMap.count() );
 
  478   layers.reserve( layersInMap.count() );
 
  481     layersIds << layer->id();
 
  494   scope->
addFunction( QStringLiteral( 
"is_layer_visible" ), 
new GetLayerVisibility( mapSettings.
layers( 
true ), mapSettings.
scale() ) );
 
  518   QVariantList matchList;
 
  522     QVariantMap matchMap;
 
  524     matchMap.insert( QStringLiteral( 
"valid" ), match.isValid() );
 
  525     matchMap.insert( QStringLiteral( 
"layer" ), QVariant::fromValue<QgsWeakMapLayerPointer>( 
QgsWeakMapLayerPointer( match.layer() ) ) );
 
  526     matchMap.insert( QStringLiteral( 
"feature_id" ), match.featureId() );
 
  527     matchMap.insert( QStringLiteral( 
"vertex_index" ), match.vertexIndex() );
 
  528     matchMap.insert( QStringLiteral( 
"distance" ), match.distance() );
 
  530     matchList.append( matchMap );
 
  560     return scope.release();
 
  563   const QStringList variableNames = layout->
customProperty( QStringLiteral( 
"variableNames" ) ).toStringList();
 
  564   const QStringList variableValues = layout->
customProperty( QStringLiteral( 
"variableValues" ) ).toStringList();
 
  568   for ( 
const QString &variableName : variableNames )
 
  570     if ( varIndex >= variableValues.length() )
 
  575     const QVariant varValue = variableValues.at( varIndex );
 
  577     scope->setVariable( variableName, varValue );
 
  593   QVariantList offsets;
 
  603   scope->addFunction( QStringLiteral( 
"item_variables" ), 
new GetLayoutItemVariables( layout ) );
 
  604   scope->addFunction( QStringLiteral( 
"map_credits" ), 
new GetLayoutMapLayerCredits( layout ) );
 
  616     scope->setFeature( atlasFeature );
 
  622   return scope.release();
 
  631   QStringList variableNames = layout->
customProperty( QStringLiteral( 
"variableNames" ) ).toStringList();
 
  632   QStringList variableValues = layout->
customProperty( QStringLiteral( 
"variableValues" ) ).toStringList();
 
  634   variableNames << name;
 
  635   variableValues << value.toString();
 
  646   QStringList variableNames;
 
  647   QStringList variableValues;
 
  649   QVariantMap::const_iterator it = variables.constBegin();
 
  650   for ( ; it != variables.constEnd(); ++it )
 
  652     variableNames << it.key();
 
  653     variableValues << it.value().toString();
 
  706   const QStringList variableNames = item->
customProperty( QStringLiteral( 
"variableNames" ) ).toStringList();
 
  707   const QStringList variableValues = item->
customProperty( QStringLiteral( 
"variableValues" ) ).toStringList();
 
  710   for ( 
const QString &variableName : variableNames )
 
  712     if ( varIndex >= variableValues.length() )
 
  717     const QVariant varValue = variableValues.at( varIndex );
 
  752   QStringList variableNames = item->
customProperty( QStringLiteral( 
"variableNames" ) ).toStringList();
 
  753   QStringList variableValues = item->
customProperty( QStringLiteral( 
"variableValues" ) ).toStringList();
 
  755   variableNames << name;
 
  756   variableValues << value.toString();
 
  767   QStringList variableNames;
 
  768   QStringList variableValues;
 
  770   QVariantMap::const_iterator it = variables.constBegin();
 
  771   for ( ; it != variables.constEnd(); ++it )
 
  773     variableNames << it.key();
 
  774     variableValues << it.value().toString();
 
  788   const QStringList variableNames = frame->
customProperty( QStringLiteral( 
"variableNames" ) ).toStringList();
 
  789   const QStringList variableValues = frame->
customProperty( QStringLiteral( 
"variableValues" ) ).toStringList();
 
  792   for ( 
const QString &variableName : variableNames )
 
  794     if ( varIndex >= variableValues.length() )
 
  799     const QVariant varValue = variableValues.at( varIndex );
 
  813   QStringList variableNames = frame->
customProperty( QStringLiteral( 
"variableNames" ) ).toStringList();
 
  814   QStringList variableValues = frame->
customProperty( QStringLiteral( 
"variableValues" ) ).toStringList();
 
  816   variableNames << name;
 
  817   variableValues << value.toString();
 
  828   QStringList variableNames;
 
  829   QStringList variableValues;
 
  831   QVariantMap::const_iterator it = variables.constBegin();
 
  832   for ( ; it != variables.constEnd(); ++it )
 
  834     variableNames << it.key();
 
  835     variableValues << it.value().toString();
 
  856   scope->addFunction( QStringLiteral( 
"parameter" ), 
new GetProcessingParameterValue( parameters ) );
 
  859     return scope.release();
 
  864   return scope.release();
 
  871   if ( !model->sourceFilePath().isEmpty() )
 
  873     modelPath = model->sourceFilePath();
 
  882   const QString modelFolder = !modelPath.isEmpty() ? QFileInfo( modelPath ).path() : QString();
 
  889   const QVariantMap customVariables = model->variables();
 
  890   for ( 
auto it = customVariables.constBegin(); it != customVariables.constEnd(); ++it )
 
  895   return modelScope.release();
 
  902   return scope.release();
 
  919   return mUsesGeometry;
 
  925   return mReferencedColumns;
 
  937 QgsExpressionContextUtils::GetLayerVisibility::GetLayerVisibility( 
const QList<QgsMapLayer *> &layers, 
double scale )
 
  939   , mLayers( _qgis_listRawToQPointer( layers ) )
 
  942   for ( 
const auto &layer : mLayers )
 
  944     if ( layer->hasScaleBasedVisibility() )
 
  946       mScaleBasedVisibilityDetails[ layer ] = qMakePair( layer->minimumScale(), layer->maximumScale() );
 
  951 QgsExpressionContextUtils::GetLayerVisibility::GetLayerVisibility()
 
  957   if ( mLayers.isEmpty() )
 
  962   bool isVisible = 
false;
 
  963   QgsMapLayer *layer = QgsExpressionUtils::getMapLayer( values.at( 0 ), parent );
 
  964   if ( layer && mLayers.contains( layer ) )
 
  967     if ( mScaleBasedVisibilityDetails.contains( layer ) && !
qgsDoubleNear( mScale, 0.0 ) )
 
  969       if ( ( !
qgsDoubleNear( mScaleBasedVisibilityDetails[ layer ].first, 0.0 ) && mScale > mScaleBasedVisibilityDetails[ layer ].first ) ||
 
  970            ( !
qgsDoubleNear( mScaleBasedVisibilityDetails[ layer ].second, 0.0 ) && mScale < mScaleBasedVisibilityDetails[ layer ].second ) )
 
  982   GetLayerVisibility *func = 
new GetLayerVisibility();
 
  983   func->mLayers = mLayers;
 
  984   func->mScale = mScale;
 
  985   func->mScaleBasedVisibilityDetails = mScaleBasedVisibilityDetails;
 
  997     CurrentVertexZValueExpressionFunction():
 
 1000                                    QStringLiteral( 
"Meshes" ) )
 
 1010       if ( !context->
hasVariable( QStringLiteral( 
"_mesh_vertex_index" ) ) || !context->
hasVariable( QStringLiteral( 
"_mesh_layer" ) ) )
 
 1013       int vertexIndex = context->
variable( QStringLiteral( 
"_mesh_vertex_index" ) ).toInt();
 
 1015       QgsMeshLayer *layer = qobject_cast<QgsMeshLayer *>( qvariant_cast<QgsMapLayer *>( context->
variable( QStringLiteral( 
"_mesh_layer" ) ) ) );
 
 1035     CurrentVertexXValueExpressionFunction():
 
 1038                                    QStringLiteral( 
"Meshes" ) )
 
 1048       if ( !context->
hasVariable( QStringLiteral( 
"_mesh_vertex_index" ) ) || !context->
hasVariable( QStringLiteral( 
"_mesh_layer" ) ) )
 
 1051       int vertexIndex = context->
variable( QStringLiteral( 
"_mesh_vertex_index" ) ).toInt();
 
 1053       QgsMeshLayer *layer = qobject_cast<QgsMeshLayer *>( qvariant_cast<QgsMapLayer *>( context->
variable( QStringLiteral( 
"_mesh_layer" ) ) ) );
 
 1073     CurrentVertexYValueExpressionFunction():
 
 1076                                    QStringLiteral( 
"Meshes" ) )
 
 1086       if ( !context->
hasVariable( QStringLiteral( 
"_mesh_vertex_index" ) ) || !context->
hasVariable( QStringLiteral( 
"_mesh_layer" ) ) )
 
 1089       int vertexIndex = context->
variable( QStringLiteral( 
"_mesh_vertex_index" ) ).toInt();
 
 1091       QgsMeshLayer *layer = qobject_cast<QgsMeshLayer *>( qvariant_cast<QgsMapLayer *>( context->
variable( QStringLiteral( 
"_mesh_layer" ) ) ) );
 
 1111     CurrentVertexExpressionFunction():
 
 1114                                    QStringLiteral( 
"Meshes" ) )
 
 1124       if ( !context->
hasVariable( QStringLiteral( 
"_mesh_vertex_index" ) ) || !context->
hasVariable( QStringLiteral( 
"_mesh_layer" ) ) )
 
 1127       int vertexIndex = context->
variable( QStringLiteral( 
"_mesh_vertex_index" ) ).toInt();
 
 1129       QgsMeshLayer *layer = qobject_cast<QgsMeshLayer *>( qvariant_cast<QgsMapLayer *>( context->
variable( QStringLiteral( 
"_mesh_layer" ) ) ) );
 
 1149     CurrentVertexIndexExpressionFunction():
 
 1152                                    QStringLiteral( 
"Meshes" ) )
 
 1162       if ( !context->
hasVariable( QStringLiteral( 
"_mesh_vertex_index" ) ) || !context->
hasVariable( QStringLiteral( 
"_mesh_layer" ) ) )
 
 1165       return context->
variable( QStringLiteral( 
"_mesh_vertex_index" ) );
 
 1178     CurrentFaceAreaExpressionFunction():
 
 1181                                    QStringLiteral( 
"Meshes" ) )
 
 1191       if ( !context->
hasVariable( QStringLiteral( 
"_mesh_face_index" ) ) || !context->
hasVariable( QStringLiteral( 
"_mesh_layer" ) ) )
 
 1194       int faceIndex = context->
variable( QStringLiteral( 
"_mesh_face_index" ) ).toInt();
 
 1196       QgsMeshLayer *layer = qobject_cast<QgsMeshLayer *>( qvariant_cast<QgsMapLayer *>( context->
variable( QStringLiteral( 
"_mesh_layer" ) ) ) );
 
 1201       if ( !face.isEmpty() )
 
 1209           return QVariant( area );
 
 1213           return QVariant( geom.
area() );
 
 1229     CurrentFaceIndexExpressionFunction():
 
 1232                                    QStringLiteral( 
"Meshes" ) )
 
 1242       if ( !context->
hasVariable( QStringLiteral( 
"_mesh_face_index" ) ) || !context->
hasVariable( QStringLiteral( 
"_mesh_layer" ) ) )
 
 1245       return context->
variable( QStringLiteral( 
"_mesh_face_index" ) ).toInt();
 
 1259   std::unique_ptr<QgsExpressionContextScope> scope = std::make_unique<QgsExpressionContextScope>();
 
 1261   switch ( elementType )
 
 1270       scope->addFunction( 
"$vertex_as_point", 
new CurrentVertexExpressionFunction );
 
 1271       scope->addFunction( 
"$vertex_x", 
new CurrentVertexXValueExpressionFunction );
 
 1272       scope->addFunction( 
"$vertex_y", 
new CurrentVertexYValueExpressionFunction );
 
 1273       scope->addFunction( 
"$vertex_z", 
new CurrentVertexZValueExpressionFunction );
 
 1274       scope->addFunction( 
"$vertex_index", 
new CurrentVertexIndexExpressionFunction );
 
 1281       scope->addFunction( 
"$face_area", 
new CurrentFaceAreaExpressionFunction );
 
 1282       scope->addFunction( 
"$face_index", 
new CurrentFaceIndexExpressionFunction );
 
 1289   return scope.release();
 
  
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
 
QVariant customProperty(const QString &key, const QVariant &defaultValue=QVariant()) const
Read a custom property from the object.
 
QgsCoordinateReferenceSystem crs
 
static QString osName()
Returns a string name of the operating system QGIS is running on.
 
QString id() const
Returns the item's ID name.
 
void addFunction(const QString &name, QgsScopedExpressionFunction *function)
Adds a function to the scope.
 
const QgsLayout * layout() const
Returns the layout the object is attached to.
 
void setFeature(const QgsFeature &feature)
Convenience function for setting a feature for the scope.
 
QColor color() const
Returns the symbol's color.
 
double height() const SIP_HOLDGIL
Returns the height of the rectangle.
 
QVariantMap customVariables() const
A map of custom project variables.
 
QgsProjectStorage * projectStorage() const
Returns pointer to project storage implementation that handles read/write of the project file.
 
static QString version()
Version string.
 
Item representing the paper in a layout.
 
void setVariable(const QString &name, const QVariant &value, bool isStatic=false)
Convenience method for setting a variable in the context scope by name name and value.
 
static QgsExpressionContextScope * globalScope()
Creates a new scope which contains variables and functions relating to the global QGIS context.
 
QString projectionAcronym() const
Returns the projection acronym for the projection used by the CRS.
 
QgsProject * project() const
Returns the project in which the algorithm is being executed.
 
void addVariable(const QgsExpressionContextScope::StaticVariable &variable)
Adds a variable into the context scope.
 
Point geometry type, with support for z-dimension and m-values.
 
static QgsExpressionContextScope * mapToolCaptureScope(const QList< QgsPointLocator::Match > &matches)
Sets the expression context variables which are available for expressions triggered by a map tool cap...
 
QgsLayoutRenderContext & renderContext()
Returns a reference to the layout's render context, which stores information relating to the current ...
 
Q_INVOKABLE void setCustomProperty(const QString &key, const QVariant &value)
Set a custom property for layer.
 
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into allowing algorithms to be written in pure substantial changes are required in order to port existing x Processing algorithms for QGIS x The most significant changes are outlined not GeoAlgorithm For algorithms which operate on features one by consider subclassing the QgsProcessingFeatureBasedAlgorithm class This class allows much of the boilerplate code for looping over features from a vector layer to be bypassed and instead requires implementation of a processFeature method Ensure that your algorithm(or algorithm 's parent class) implements the new pure virtual createInstance(self) call
 
@ WKT_PREFERRED
Preferred format, matching the most recent WKT ISO standard. Currently an alias to WKT2_2019,...
 
bool isTemporal() const
Returns true if the object's temporal range is enabled, and the object will be filtered when renderin...
 
static QgsExpressionContextScope * notificationScope(const QString &message=QString())
Creates a new scope which contains variables and functions relating to provider notifications.
 
QgsDistanceArea * geomCalculator()
Returns calculator used for distance and area calculations (used by $length, $area and $perimeter fun...
 
int count() const override
Returns the number of features to iterate over.
 
QgsPointXY center() const SIP_HOLDGIL
Returns the center point of the rectangle.
 
static QgsExpressionContextScope * formScope(const QgsFeature &formFeature=QgsFeature(), const QString &formMode=QString())
Creates a new scope which contains functions and variables from the current attribute form/table form...
 
static void setCustomVariables(const QVariantMap &customVariables)
Custom expression variables for this application.
 
static void registerContextFunctions()
Registers all known core functions provided by QgsExpressionContextScope objects.
 
Container of fields for a vector layer.
 
static void setProjectVariable(QgsProject *project, const QString &name, const QVariant &value)
Sets a project context variable.
 
static QgsGeometry fromPointXY(const QgsPointXY &point) SIP_HOLDGIL
Creates a new geometry from a QgsPointXY object.
 
static QgsExpressionContextScope * layerScope(const QgsMapLayer *layer)
Creates a new scope which contains variables and functions relating to a QgsMapLayer.
 
static void setLayerVariables(QgsMapLayer *layer, const QVariantMap &variables)
Sets all layer context variables.
 
const QgsDateTimeRange & temporalRange() const
Returns the datetime range for the object.
 
static QgsExpressionContextScope * mapSettingsScope(const QgsMapSettings &mapSettings)
Creates a new scope which contains variables and functions relating to a QgsMapSettings object.
 
double measureArea(const QgsGeometry &geometry) const
Measures the area of a geometry.
 
void setCustomVariables(const QVariantMap &customVariables)
A map of custom project variables.
 
static QgsProject * instance()
Returns the QgsProject singleton instance.
 
static QList< QgsExpressionContextScope * > globalProjectLayerScopes(const QgsMapLayer *layer)
Creates a list of three scopes: global, layer's project and layer.
 
static QgsExpressionContextScope * layoutScope(const QgsLayout *layout)
Creates a new scope which contains variables and functions relating to a QgsLayout layout.
 
QString description() const
Description.
 
static QgsExpressionContextScope * layoutItemScope(const QgsLayoutItem *item)
Creates a new scope which contains variables and functions relating to a QgsLayoutItem.
 
int page() const
Returns the page the item is currently on, with the first page returning 0.
 
static QgsExpressionContextScope * multiFrameScope(const QgsLayoutMultiFrame *frame)
Creates a new scope which contains variables and functions relating to a QgsLayoutMultiFrame.
 
Abstract base class for all rendered symbols.
 
void setFields(const QgsFields &fields)
Convenience function for setting a fields for the scope.
 
Abstract base class for layout items with the ability to distribute the content to several frames (Qg...
 
static void setLayerVariable(QgsMapLayer *layer, const QString &name, const QVariant &value)
Sets a layer context variable.
 
double angle() const
Returns the marker angle for the whole symbol.
 
double frameRate() const
Returns the frame rate of the map (in frames per second), for maps which are part of an animation.
 
static void removeProjectVariable(QgsProject *project, const QString &name)
Remove project context variable.
 
static const QString EXPR_SYMBOL_COLOR
Inbuilt variable name for symbol color variable.
 
QVariant variable(const QString &name) const
Fetches a matching variable from the context.
 
QgsLayoutPageCollection * pageCollection()
Returns a pointer to the layout's page collection, which stores and manages page items in the layout.
 
QgsLayout * layout() override
Returns the layout associated with the iterator.
 
QgsLayoutSize sizeWithUnits() const
Returns the item's current size, including units.
 
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
 
static QString platform()
Returns the QGIS platform name, e.g., "desktop", "server", "qgis_process" or "external" (for external...
 
static const QString EXPR_SYMBOL_ANGLE
Inbuilt variable name for symbol angle variable.
 
double convertAreaMeasurement(double area, QgsUnitTypes::AreaUnit toUnits) const
Takes an area measurement calculated by this QgsDistanceArea object and converts it to a different ar...
 
static QString locale()
Returns the QGIS locale.
 
QgsFields fields() const FINAL
Returns the list of fields of this layer.
 
static int scaleToZoomLevel(double mapScale, int sourceMinZoom, int sourceMaxZoom, double z0Scale=559082264.0287178)
Finds the best fitting zoom level given a map scale denominator and allowed zoom level range.
 
static QgsExpressionContextScope * projectScope(const QgsProject *project)
Creates a new scope which contains variables and functions relating to a QGIS project.
 
static void setLayoutVariable(QgsLayout *layout, const QString &name, const QVariant &value)
Sets a layout context variable.
 
int faceCount() const
Returns number of faces.
 
double rotation() const
Returns the rotation of the resulting map image, in degrees clockwise.
 
int vertexCount() const
Returns number of vertices.
 
QString id() const
Returns the unique ID for the algorithm, which is a combination of the algorithm provider's ID and th...
 
QSizeF toQSizeF() const
Converts the layout size to a QSizeF.
 
QVariant customProperty(const QString &key, const QVariant &defaultValue=QVariant()) const
Read a custom property from the layout.
 
ElementType
Defines type of mesh elements.
 
bool enabled() const
Returns whether the atlas generation is enabled.
 
static void setLayoutMultiFrameVariables(QgsLayoutMultiFrame *frame, const QVariantMap &variables)
Sets all layout multiframe context variables for an frame.
 
bool isValid() const
Returns the validity of this feature.
 
Contains information about the context in which a processing algorithm is executed.
 
A marker symbol type, for rendering Point and MultiPoint geometries.
 
static Q_INVOKABLE QString toString(QgsUnitTypes::DistanceUnit unit)
Returns a translated string representing a distance unit.
 
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)
 
QgsUnitTypes::DistanceUnit mapUnits() const
Returns the units of the map's geographical coordinates - used for scale calculation.
 
Represents a mesh layer supporting display of data on structured or unstructured meshes.
 
QgsFeature feature() const
Returns the current feature for evaluating the layout.
 
QgsVectorLayer * coverageLayer() const
Returns the coverage layer used for the atlas features.
 
static QgsExpressionContextScope * parentFormScope(const QgsFeature &formFeature=QgsFeature(), const QString &formMode=QString())
Creates a new scope which contains functions and variables from the current parent attribute form/tab...
 
static QgsExpressionContextScope * processingAlgorithmScope(const QgsProcessingAlgorithm *algorithm, const QVariantMap ¶meters, QgsProcessingContext &context)
Creates a new scope which contains variables and functions relating to a processing algorithm,...
 
QgsLayoutReportContext & reportContext()
Returns a reference to the layout's report context, which stores information relating to the current ...
 
static void setGlobalVariable(const QString &name, const QVariant &value)
Sets a global context variable.
 
QString toWkt(WktVariant variant=WKT1_GDAL, bool multiline=false, int indentationWidth=4) const
Returns a WKT representation of this CRS.
 
static void setLayoutItemVariable(QgsLayoutItem *item, const QString &name, const QVariant &value)
Sets a layout item context variable, with the given name and value.
 
QgsMeshFace face(int index) const
Returns a face at the index.
 
QgsMesh * nativeMesh()
Returns native mesh (nullptr before rendering or calling to updateMesh)
 
static QgsExpressionContextScope * processingModelAlgorithmScope(const QgsProcessingModelAlgorithm *model, const QVariantMap ¶meters, QgsProcessingContext &context)
Creates a new scope which contains variables and functions relating to a processing model algorithm,...
 
static void setLayoutItemVariables(QgsLayoutItem *item, const QVariantMap &variables)
Sets all layout item context variables for an item.
 
QSet< QString > referencedColumns(const QgsExpressionNodeFunction *node) const override
Returns a set of field names which are required for this function.
 
QString id() const
Returns the layer's unique ID, which is used to access this layer from QgsProject.
 
QgsLayoutItemPage * page(int pageNumber)
Returns a specific page (by pageNumber) from the collection.
 
static void setCustomVariable(const QString &name, const QVariant &value)
Set a single custom expression variable.
 
QPointer< QgsMapLayer > QgsWeakMapLayerPointer
Weak pointer for QgsMapLayer.
 
double scale() const
Returns the calculated map scale.
 
Base class for graphical items within a QgsLayout.
 
QString toProj() const
Returns a Proj string representation of this CRS.
 
An expression node for expression functions.
 
QVector< int > QgsMeshFace
List of vertex indexes.
 
QgsProjOperation operation() const
Returns information about the PROJ operation associated with the coordinate reference system,...
 
void setCustomProperty(const QString &key, const QVariant &value)
Set a custom property for the object.
 
Single scope for storing variables and functions for use within a QgsExpressionContext....
 
static void setGlobalVariables(const QVariantMap &variables)
Sets all global context variables.
 
int currentFeatureNumber() const
Returns the current feature number, where a value of 0 corresponds to the first feature.
 
QString absoluteFilePath() const
Returns full absolute path to the project file if the project is stored in a file system - derived fr...
 
QgsCoordinateReferenceSystem destinationCrs() const
Returns the destination coordinate reference system for the map render.
 
Layout graphical items for displaying a map.
 
QgsUnitTypes::AreaUnit areaUnits() const
Returns the desired areal units for calculations involving geomCalculator(), e.g.,...
 
static QgsExpressionContext createFeatureBasedContext(const QgsFeature &feature, const QgsFields &fields)
Helper function for creating an expression context which contains just a feature and fields collectio...
 
static QString userLoginName()
Returns the user's operating system login account name.
 
virtual QString uuid() const
Returns the item identification string.
 
Q_INVOKABLE QVariant customProperty(const QString &value, const QVariant &defaultValue=QVariant()) const
Read a custom property from layer.
 
static QgsExpressionContextScope * updateSymbolScope(const QgsSymbol *symbol, QgsExpressionContextScope *symbolScope=nullptr)
Updates a symbol scope related to a QgsSymbol to an expression context.
 
static QgsExpressionContextScope * meshExpressionScope(QgsMesh::ElementType elementType)
Creates a new scope which contains functions relating to mesh layer element elementType.
 
Abstract base class for processing algorithms.
 
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
 
A geometry is the spatial representation of a feature.
 
A abstract base class for defining QgsExpression functions.
 
QString currentFilename() const
Returns the current feature filename.
 
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
 
Represents a vector layer which manages a vector based data sets.
 
double width() const SIP_HOLDGIL
Returns the width of the rectangle.
 
virtual QgsScopedExpressionFunction * clone() const =0
Returns a clone of the function.
 
Base class for all map layer types. This is the base class for all map layer types (vector,...
 
static QgsGeometry fromRect(const QgsRectangle &rect) SIP_HOLDGIL
Creates a new geometry from a QgsRectangle.
 
QVector< QgsMeshVertex > vertices
 
static void removeGlobalVariable(const QString &name)
Remove a global context variable.
 
QgsExpressionContextScope * createExpressionContextScope() const override
This method needs to be reimplemented in all classes which implement this interface and return an exp...
 
bool isStatic(const QgsExpressionNodeFunction *node, QgsExpression *parent, const QgsExpressionContext *context) const override
Will be called during prepare to determine if the function is static.
 
static double scaleToZoom(double mapScale, double z0Scale=559082264.0287178)
Finds zoom level given map scale denominator.
 
static QgsExpressionContextScope * atlasScope(const QgsLayoutAtlas *atlas)
Creates a new scope which contains variables and functions relating to a QgsLayoutAtlas.
 
static bool allParamsStatic(const QgsExpressionNodeFunction *node, QgsExpression *parent, const QgsExpressionContext *context)
This will return true if all the params for the provided function node are static within the constrai...
 
static QString releaseName()
Release name.
 
static QVariantMap customVariables()
Custom expression variables for this application.
 
static bool registerFunction(QgsExpressionFunction *function, bool transferOwnership=false)
Registers a function to the expression engine.
 
A general purpose distance and area calculator, capable of performing ellipsoid based calculations.
 
double dpi() const
Returns the dpi for outputting the layout.
 
QString ellipsoidAcronym() const
Returns the ellipsoid acronym for the ellipsoid used by the CRS.
 
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
 
bool isEmpty() const override SIP_HOLDGIL
Returns true if the geometry is empty.
 
CORE_EXPORT QgsGeometry toGeometry(const QgsMeshFace &face, const QVector< QgsMeshVertex > &vertices)
Returns face as polygon geometry.
 
Interface for master layout type objects, such as print layouts and reports.
 
void setCustomProperty(const QString &key, const QVariant &value)
Set a custom property for the layout.
 
bool usesGeometry(const QgsExpressionNodeFunction *node) const override
Does this function use a geometry object.
 
Single variable definition for use within a QgsExpressionContextScope.
 
int pageCount() const
Returns the number of pages in the collection.
 
Class for parsing and evaluation of expressions (formerly called "search strings")....
 
The QgsMapSettings class contains configuration for rendering of the map. The rendering itself is don...
 
QgsRectangle visibleExtent() const
Returns the actual extent derived from requested extent that takes output image size into account.
 
static void setLayoutMultiFrameVariable(QgsLayoutMultiFrame *frame, const QString &name, const QVariant &value)
Sets a layout multi frame context variable, with the given name and value.
 
This class provides a method of storing points, consisting of an x and y coordinate,...
 
QgsMeshVertex vertex(int index) const
Returns a vertex at the index.
 
long long currentFrame() const
Returns the current frame number of the map, for maps which are part of an animation.
 
Expression function for use within a QgsExpressionContextScope. This differs from a standard QgsExpre...
 
double ANALYSIS_EXPORT angle(QgsPoint *p1, QgsPoint *p2, QgsPoint *p3, QgsPoint *p4)
Calculates the angle between two segments (in 2 dimension, z-values are ignored)
 
double area() const
Returns the planar, 2-dimensional area of the geometry.
 
static int versionInt()
Version number used for comparing versions using the "Check QGIS Version" function.
 
Class used to render QgsLayout as an atlas, by iterating over the features from an associated vector ...
 
QgsExpressionContext createExpressionContext() const override
This method needs to be reimplemented in all classes which implement this interface and return an exp...
 
QVariant func(const QVariantList &values, const QgsExpressionContext *context, QgsExpression *parent, const QgsExpressionNodeFunction *node) override=0
Returns result of evaluating the function.
 
QgsVectorLayer * layer() const
Returns the vector layer associated with the layout's context.
 
static void setProjectVariables(QgsProject *project, const QVariantMap &variables)
Sets all project context variables.
 
QList< QgsMapLayer * > layers(bool expandGroupLayers=false) const
Returns the list of layers which will be rendered in the map.
 
static void setLayoutVariables(QgsLayout *layout, const QVariantMap &variables)
Sets all layout context variables.
 
QPointF pagePositionToLayoutPosition(int page, const QgsLayoutPoint &position) const
Converts a position on a page to an absolute position in layout coordinates.
 
bool hasVariable(const QString &name) const
Check whether a variable is specified by any scope within the context.
 
static QString userFullName()
Returns the user's operating system login account full display name.
 
QString nameForPage(int page) const
Returns the calculated name for a specified atlas page number.