22 QString QgsSimplifyAlgorithm::name()
 const 
   24   return QStringLiteral( 
"simplifygeometries" );
 
   27 QString QgsSimplifyAlgorithm::displayName()
 const 
   29   return QObject::tr( 
"Simplify" );
 
   32 QStringList QgsSimplifyAlgorithm::tags()
 const 
   34   return QObject::tr( 
"simplify,generalize,douglas,peucker,visvalingam" ).split( 
',' );
 
   37 QString QgsSimplifyAlgorithm::group()
 const 
   39   return QObject::tr( 
"Vector geometry" );
 
   42 QString QgsSimplifyAlgorithm::groupId()
 const 
   44   return QStringLiteral( 
"vectorgeometry" );
 
   47 QString QgsSimplifyAlgorithm::outputName()
 const 
   49   return QObject::tr( 
"Simplified" );
 
   52 QString QgsSimplifyAlgorithm::shortHelpString()
 const 
   54   return QObject::tr( 
"This algorithm simplifies the geometries in a line or polygon layer. It creates a new layer " 
   55                       "with the same features as the ones in the input layer, but with geometries containing a lower number of vertices.\n\n" 
   56                       "The algorithm gives a choice of simplification methods, including distance based " 
   57                       "(the \"Douglas-Peucker\" algorithm), area based (\"Visvalingam\" algorithm) and snapping geometries to a grid." );
 
   60 QgsSimplifyAlgorithm *QgsSimplifyAlgorithm::createInstance()
 const 
   62   return new QgsSimplifyAlgorithm();
 
   65 QList<int> QgsSimplifyAlgorithm::inputLayerTypes()
 const 
   70 void QgsSimplifyAlgorithm::initParameters( 
const QVariantMap & )
 
   73   methods << QObject::tr( 
"Distance (Douglas-Peucker)" )
 
   74           << QObject::tr( 
"Snap to grid" )
 
   75           << QObject::tr( 
"Area (Visvalingam)" );
 
   78                   QStringLiteral( 
"METHOD" ),
 
   79                   QObject::tr( 
"Simplification method" ),
 
   80                   methods, 
false, 0 ) );
 
   81   std::unique_ptr< QgsProcessingParameterDistance > tolerance = std::make_unique< QgsProcessingParameterDistance >( QStringLiteral( 
"TOLERANCE" ),
 
   82       QObject::tr( 
"Tolerance" ), 1.0, QStringLiteral( 
"INPUT" ), 
false, 0, 10000000.0 );
 
   83   tolerance->setIsDynamic( 
true );
 
   85   tolerance->setDynamicLayerParameterName( QStringLiteral( 
"INPUT" ) );
 
   86   addParameter( tolerance.release() );
 
   91   mTolerance = parameterAsDouble( parameters, QStringLiteral( 
"TOLERANCE" ), context );
 
   93   if ( mDynamicTolerance )
 
   94     mToleranceProperty = parameters.value( QStringLiteral( 
"TOLERANCE" ) ).value< 
QgsProperty >();
 
  112       double tolerance = mTolerance;
 
  113       if ( mDynamicTolerance )
 
  114         tolerance = mToleranceProperty.valueAsDouble( context.
expressionContext(), tolerance );
 
  115       outputGeometry = inputGeometry.
simplify( tolerance );
 
  119       if ( !mDynamicTolerance )
 
  121         outputGeometry = mSimplifier->
simplify( inputGeometry );
 
  125         double tolerance = mToleranceProperty.valueAsDouble( context.
expressionContext(), mTolerance );
 
  127         outputGeometry = simplifier.
simplify( inputGeometry );
 
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
bool hasGeometry() const
Returns true if the feature has an associated geometry.
void setGeometry(const QgsGeometry &geometry)
Set the feature's geometry.
A geometry is the spatial representation of a feature.
QgsGeometry simplify(double tolerance) const
Returns a simplified version of this geometry using a specified tolerance value.
Implementation of GeometrySimplifier using the "MapToPixel" algorithm.
SimplifyAlgorithm
Types of simplification algorithms that can be used.
@ Distance
The simplification uses the distance between points to remove duplicate points.
@ SimplifyGeometry
The geometries can be simplified using the current map2pixel context state.
Contains information about the context in which a processing algorithm is executed.
QgsExpressionContext & expressionContext()
Returns the expression context.
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.
An enum based parameter for processing algorithms, allowing for selection from predefined values.
static bool isDynamic(const QVariantMap ¶meters, const QString &name)
Returns true if the parameter with matching name is a dynamic parameter, and must be evaluated once f...
@ TypeVectorLine
Vector line layers.
@ TypeVectorPolygon
Vector polygon layers.
Definition for a property.
@ DoublePositive
Positive double value (including 0)
A store for object properties.
QList< QgsFeature > QgsFeatureList