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 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...