23 QString QgsProjectPointCartesianAlgorithm::name()
const 25 return QStringLiteral(
"projectpointcartesian" );
28 QString QgsProjectPointCartesianAlgorithm::displayName()
const 30 return QObject::tr(
"Project points (Cartesian)" );
33 QStringList QgsProjectPointCartesianAlgorithm::tags()
const 35 return QObject::tr(
"bearing,azimuth,distance,angle" ).split(
',' );
38 QString QgsProjectPointCartesianAlgorithm::group()
const 40 return QObject::tr(
"Vector geometry" );
43 QString QgsProjectPointCartesianAlgorithm::groupId()
const 45 return QStringLiteral(
"vectorgeometry" );
48 QString QgsProjectPointCartesianAlgorithm::outputName()
const 50 return QObject::tr(
"Projected" );
53 QString QgsProjectPointCartesianAlgorithm::shortHelpString()
const 55 return QObject::tr(
"This algorithm projects point geometries by a specified distance and bearing (azimuth), creating a new point layer with the projected points.\n\n" 56 "The distance is specified in layer units, and the bearing in degrees clockwise from North." );
59 QList<int> QgsProjectPointCartesianAlgorithm::inputLayerTypes()
const 69 QgsProjectPointCartesianAlgorithm *QgsProjectPointCartesianAlgorithm::createInstance()
const 71 return new QgsProjectPointCartesianAlgorithm();
74 void QgsProjectPointCartesianAlgorithm::initParameters(
const QVariantMap & )
76 std::unique_ptr< QgsProcessingParameterNumber > bearing = qgis::make_unique< QgsProcessingParameterNumber >( QStringLiteral(
"BEARING" ), QObject::tr(
"Bearing (degrees from North)" ),
QgsProcessingParameterNumber::Double, 0, false );
77 bearing->setIsDynamic(
true );
79 bearing->setDynamicLayerParameterName( QStringLiteral(
"INPUT" ) );
80 addParameter( bearing.release() );
82 std::unique_ptr< QgsProcessingParameterDistance > distance = qgis::make_unique< QgsProcessingParameterDistance >( QStringLiteral(
"DISTANCE" ), QObject::tr(
"Distance" ), 1, QStringLiteral(
"INPUT" ), false );
83 distance->setIsDynamic(
true );
85 distance->setDynamicLayerParameterName( QStringLiteral(
"INPUT" ) );
86 addParameter( distance.release() );
96 mBearing = parameterAsDouble( parameters, QStringLiteral(
"BEARING" ), context );
98 if ( mDynamicBearing )
99 mBearingProperty = parameters.value( QStringLiteral(
"BEARING" ) ).value<
QgsProperty >();
101 mDistance = parameterAsDouble( parameters, QStringLiteral(
"DISTANCE" ), context );
103 if ( mDynamicDistance )
104 mDistanceProperty = parameters.value( QStringLiteral(
"DISTANCE" ) ).value<
QgsProperty >();
114 double distance = mDistance;
115 if ( mDynamicDistance )
117 double bearing = mBearing;
118 if ( mDynamicBearing )
119 bearing = mBearingProperty.valueAsDouble( context.
expressionContext(), bearing );
125 std::unique_ptr< QgsMultiPoint > result = qgis::make_unique< QgsMultiPoint >();
129 result->addGeometry( p->
project( distance, bearing ).
clone() );
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...
Multi point geometry collection.
static bool isMultiType(Type type)
Returns true if the WKB type is a multi type.
QList< QgsFeature > QgsFeatureList
QgsWkbTypes::Type wkbType() const
Returns type of the geometry as a WKB type (point / linestring / polygon etc.)
A geometry is the spatial representation of a feature.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
bool hasGeometry() const
Returns true if the feature has an associated geometry.
static GeometryType geometryType(Type type)
Returns the geometry type for a WKB type, e.g., both MultiPolygon and CurvePolygon would have a Polyg...
QgsPoint * clone() const override
Clones the geometry by performing a deep copy.
QgsGeometry geometry() const
Returns the geometry associated with this feature.
A store for object properties.
QgsPoint project(double distance, double azimuth, double inclination=90.0) const
Returns a new point which correspond to this point projected by a specified distance with specified a...
Point geometry type, with support for z-dimension and m-values.
Double value (including negative values)
QgsExpressionContext & expressionContext()
Returns the expression context.
Definition for a property.
int numGeometries() const
Returns the number of geometries within the collection.
Flag
Flags controlling how QgsProcessingFeatureSource fetches features.
const QgsAbstractGeometry * constGet() const
Returns a non-modifiable (const) reference to the underlying abstract geometry primitive.
double valueAsDouble(const QgsExpressionContext &context, double defaultValue=0.0, bool *ok=nullptr) const
Calculates the current value of the property and interprets it as a double.
const QgsAbstractGeometry * geometryN(int n) const
Returns a const reference to a geometry from within the collection.
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...