23QString QgsGeometryByExpressionAlgorithm::name()
 const 
   25  return QStringLiteral( 
"geometrybyexpression" );
 
   28QString QgsGeometryByExpressionAlgorithm::displayName()
 const 
   30  return QObject::tr( 
"Geometry by expression" );
 
   33QStringList QgsGeometryByExpressionAlgorithm::tags()
 const 
   35  return QObject::tr( 
"geometry,expression,create,modify,update" ).split( 
',' );
 
   38QString QgsGeometryByExpressionAlgorithm::group()
 const 
   40  return QObject::tr( 
"Vector geometry" );
 
   43QString QgsGeometryByExpressionAlgorithm::groupId()
 const 
   45  return QStringLiteral( 
"vectorgeometry" );
 
   48QString QgsGeometryByExpressionAlgorithm::outputName()
 const 
   50  return QObject::tr( 
"Modified geometry" );
 
   53QString QgsGeometryByExpressionAlgorithm::shortHelpString()
 const 
   55  return QObject::tr( 
"This algorithm updates existing geometries (or creates new geometries) for input " 
   56                      "features by use of a QGIS expression. This allows complex geometry modifications " 
   57                      "which can utilize all the flexibility of the QGIS expression engine to manipulate " 
   58                      "and create geometries for output features.\n\n" 
   59                      "For help with QGIS expression functions, see the inbuilt help for specific functions " 
   60                      "which is available in the expression builder." );
 
   63QgsGeometryByExpressionAlgorithm *QgsGeometryByExpressionAlgorithm::createInstance()
 const 
   65  return new QgsGeometryByExpressionAlgorithm();
 
   68QList<int> QgsGeometryByExpressionAlgorithm::inputLayerTypes()
 const 
   83void QgsGeometryByExpressionAlgorithm::initParameters( 
const QVariantMap & )
 
   86                QStringList() << QObject::tr( 
"Polygon" ) << QObject::tr( 
"Line" ) << QObject::tr( 
"Point" ), 
false, 0 ) );
 
   90                QStringLiteral( 
"$geometry" ), QStringLiteral( 
"INPUT" ) ) );
 
   95  const int geometryType = parameterAsInt( parameters, QStringLiteral( 
"OUTPUT_GEOMETRY" ), context );
 
   96  switch ( geometryType )
 
  109  if ( parameterAsBoolean( parameters, QStringLiteral( 
"WITH_Z" ), context ) )
 
  113  if ( parameterAsBoolean( parameters, QStringLiteral( 
"WITH_M" ), context ) )
 
  118  mExpression = 
QgsExpression( parameterAsString( parameters, QStringLiteral( 
"EXPRESSION" ), context ) );
 
  119  if ( mExpression.hasParserError() )
 
  121    feedback->
reportError( mExpression.parserErrorString() );
 
  125  mExpressionContext = createExpressionContext( parameters, context );
 
  126  mExpression.prepare( &mExpressionContext );
 
  134  mExpressionContext.setFeature( feature );
 
  135  const QVariant value = mExpression.evaluate( &mExpressionContext );
 
  137  if ( mExpression.hasEvalError() )
 
  139    throw QgsProcessingException( QObject::tr( 
"Evaluation error: %1" ).arg( mExpression.evalErrorString() ) );
 
  148    if ( value.userType() == QMetaType::type( 
"QgsGeometry" ) )
 
WkbType
The WKB type describes the number of dimensions a geometry has.
 
Class for parsing and evaluation of expressions (formerly called "search strings").
 
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
 
void setGeometry(const QgsGeometry &geometry)
Set the feature's geometry.
 
A geometry is the spatial representation of a feature.
 
Contains information about the context in which a processing algorithm is executed.
 
Custom exception class for processing related exceptions.
 
Flag
Flags controlling how QgsProcessingFeatureSource fetches features.
 
@ FlagSkipGeometryValidityChecks
Invalid geometry checks should always be skipped. This flag can be useful for algorithms which always...
 
Base class for providing feedback from a processing algorithm.
 
virtual void reportError(const QString &error, bool fatalError=false)
Reports that the algorithm encountered an error while executing.
 
A boolean parameter for processing algorithms.
 
An enum based parameter for processing algorithms, allowing for selection from predefined values.
 
An expression parameter for processing algorithms.
 
@ TypeVector
Tables (i.e. vector layers with or without geometry). When used for a sink this indicates the sink ha...
 
static bool isNull(const QVariant &variant)
Returns true if the specified variant should be considered a NULL value.
 
static Qgis::WkbType addZ(Qgis::WkbType type) SIP_HOLDGIL
Adds the z dimension to a WKB type and returns the new type.
 
static Qgis::WkbType addM(Qgis::WkbType type) SIP_HOLDGIL
Adds the m dimension to a WKB type and returns the new type.
 
QList< QgsFeature > QgsFeatureList