27 QString QgsSplitLinesByLengthAlgorithm::name()
const 29 return QStringLiteral(
"splitlinesbylength" );
32 QString QgsSplitLinesByLengthAlgorithm::displayName()
const 34 return QObject::tr(
"Split lines by maximum length" );
37 QStringList QgsSplitLinesByLengthAlgorithm::tags()
const 39 return QObject::tr(
"segments,parts,distance,cut,chop" ).split(
',' );
42 QString QgsSplitLinesByLengthAlgorithm::group()
const 44 return QObject::tr(
"Vector geometry" );
47 QString QgsSplitLinesByLengthAlgorithm::groupId()
const 49 return QStringLiteral(
"vectorgeometry" );
52 QString QgsSplitLinesByLengthAlgorithm::shortHelpString()
const 54 return QObject::tr(
"This algorithm takes a line (or curve) layer and splits each feature into multiple parts, " 55 "where each part is of a specified maximum length.\n\n" 56 "Z and M values at the start and end of the new line substrings are linearly interpolated from existing values." );
59 QString QgsSplitLinesByLengthAlgorithm::shortDescription()
const 61 return QObject::tr(
"Splits lines into parts which are no longer than a specified length." );
64 QList<int> QgsSplitLinesByLengthAlgorithm::inputLayerTypes()
const 74 QgsSplitLinesByLengthAlgorithm *QgsSplitLinesByLengthAlgorithm::createInstance()
const 76 return new QgsSplitLinesByLengthAlgorithm();
79 void QgsSplitLinesByLengthAlgorithm::initParameters(
const QVariantMap & )
81 std::unique_ptr< QgsProcessingParameterDistance > length = qgis::make_unique< QgsProcessingParameterDistance >( QStringLiteral(
"LENGTH" ),
82 QObject::tr(
"Maximum line length" ), 10, QStringLiteral(
"INPUT" ),
false, 0 );
83 length->setIsDynamic(
true );
85 length->setDynamicLayerParameterName( QStringLiteral(
"INPUT" ) );
86 addParameter( length.release() );
91 mLength = parameterAsDouble( parameters, QStringLiteral(
"LENGTH" ), context );
94 mLengthProperty = parameters.value( QStringLiteral(
"LENGTH" ) ).value<
QgsProperty >();
99 QString QgsSplitLinesByLengthAlgorithm::outputName()
const 101 return QObject::tr(
"Split" );
117 double distance = mLength;
118 if ( mDynamicLength )
119 distance = mLengthProperty.valueAsDouble( context.
expressionContext(), distance );
132 double end = distance;
133 const double length = part->
length();
134 while ( start < length )
139 features << outputFeature;
static Type singleType(Type type)
Returns the single type for a WKB type.
Base class for providing feedback from a processing algorithm.
Invalid geometry checks should always be skipped. This flag can be useful for algorithms which always...
QList< QgsFeature > QgsFeatureList
QgsAbstractGeometry::const_part_iterator const_parts_end() const
Returns STL-style iterator pointing to the imaginary part after the last part of the geometry...
QgsAbstractGeometry::const_part_iterator const_parts_begin() const
Returns STL-style const iterator pointing to the first part of the geometry.
A geometry is the spatial representation of a feature.
void setAttributes(const QgsAttributes &attrs)
Sets the feature's attributes.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Positive double value (including 0)
bool hasGeometry() const
Returns true if the feature has an associated geometry.
virtual double length() const
Returns the planar, 2-dimensional length of the geometry.
Type
The WKB type describes the number of dimensions a geometry has.
virtual QgsCurve * curveSubstring(double startDistance, double endDistance) const =0
Returns a new curve representing a substring of this curve.
T qgsgeometry_cast(const QgsAbstractGeometry *geom)
Abstract base class for curved geometry type.
A store for object properties.
QgsExpressionContext & expressionContext()
Returns the expression context.
Definition for a property.
Flag
Flags controlling how QgsProcessingFeatureSource fetches features.
void setGeometry(const QgsGeometry &geometry)
Set the feature's geometry.
SourceType
Data source types enum.
Contains information about the context in which a processing algorithm is executed.
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...