QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
Public Member Functions | List of all members
QgsVectorLayerEditUtils Class Reference

#include <qgsvectorlayereditutils.h>

Public Member Functions

 QgsVectorLayerEditUtils (QgsVectorLayer *layer)
 
Qgis::GeometryOperationResult addPart (const QgsPointSequence &ring, QgsFeatureId featureId)
 Adds a new part polygon to a multipart feature. More...
 
Q_DECL_DEPRECATED Qgis::GeometryOperationResult addPart (const QVector< QgsPointXY > &ring, QgsFeatureId featureId)
 Adds a new part polygon to a multipart feature. More...
 
Qgis::GeometryOperationResult addPart (QgsCurve *ring, QgsFeatureId featureId)
 Adds a new part polygon to a multipart feature. More...
 
Qgis::GeometryOperationResult addRing (const QgsPointSequence &ring, const QgsFeatureIds &targetFeatureIds=QgsFeatureIds(), QgsFeatureId *modifiedFeatureId=nullptr)
 Adds a ring to polygon/multipolygon features. More...
 
Q_DECL_DEPRECATED Qgis::GeometryOperationResult addRing (const QVector< QgsPointXY > &ring, const QgsFeatureIds &targetFeatureIds=QgsFeatureIds(), QgsFeatureId *modifiedFeatureId=nullptr)
 Adds a ring to polygon/multipolygon features. More...
 
Qgis::GeometryOperationResult addRing (QgsCurve *ring, const QgsFeatureIds &targetFeatureIds=QgsFeatureIds(), QgsFeatureId *modifiedFeatureId=nullptr)
 Adds a ring to polygon/multipolygon features. More...
 
Qgis::GeometryOperationResult addRingV2 (QgsCurve *ring, const QgsFeatureIds &targetFeatureIds=QgsFeatureIds(), QgsFeatureIds *modifiedFeatureIds=nullptr)
 Adds a ring to polygon/multipolygon features. More...
 
int addTopologicalPoints (const QgsGeometry &geom)
 Adds topological points for every vertex of the geometry. More...
 
int addTopologicalPoints (const QgsPoint &p)
 Adds a vertex to segments which intersect point p but don't already have a vertex there. More...
 
int addTopologicalPoints (const QgsPointSequence &ps)
 Adds a vertex to segments which intersect point p but don't already have a vertex there. More...
 
int addTopologicalPoints (const QgsPointXY &p)
 Adds a vertex to segments which intersect point p but don't already have a vertex there. More...
 
Qgis::VectorEditResult deleteVertex (QgsFeatureId featureId, int vertex)
 Deletes a vertex from a feature. More...
 
bool insertVertex (const QgsPoint &point, QgsFeatureId atFeatureId, int beforeVertex)
 Inserts a new vertex before the given vertex number, in the given ring, item (first number is index 0), and feature Not meaningful for Point geometries. More...
 
bool insertVertex (double x, double y, QgsFeatureId atFeatureId, int beforeVertex)
 Insert a new vertex before the given vertex number, in the given ring, item (first number is index 0), and feature Not meaningful for Point geometries. More...
 
bool moveVertex (const QgsPoint &p, QgsFeatureId atFeatureId, int atVertex)
 Moves the vertex at the given position number, ring and item (first number is index 0), and feature to the given coordinates. More...
 
bool moveVertex (double x, double y, QgsFeatureId atFeatureId, int atVertex)
 Moves the vertex at the given position number, ring and item (first number is index 0), and feature to the given coordinates. More...
 
Qgis::GeometryOperationResult splitFeatures (const QgsCurve *curve, QgsPointSequence &topologyTestPoints, bool preserveCircular=false, bool topologicalEditing=false)
 Splits features cut by the given curve. More...
 
Qgis::GeometryOperationResult splitFeatures (const QgsPointSequence &splitLine, bool topologicalEditing=false)
 Splits features cut by the given line. More...
 
Q_DECL_DEPRECATED Qgis::GeometryOperationResult splitFeatures (const QVector< QgsPointXY > &splitLine, bool topologicalEditing=false)
 Splits features cut by the given line. More...
 
Qgis::GeometryOperationResult splitParts (const QgsPointSequence &splitLine, bool topologicalEditing=false)
 Splits parts cut by the given line. More...
 
Q_DECL_DEPRECATED Qgis::GeometryOperationResult splitParts (const QVector< QgsPointXY > &splitLine, bool topologicalEditing=false)
 Splits parts cut by the given line. More...
 
int translateFeature (QgsFeatureId featureId, double dx, double dy)
 Translates feature by dx, dy. More...
 

Detailed Description

Definition at line 31 of file qgsvectorlayereditutils.h.

Constructor & Destructor Documentation

◆ QgsVectorLayerEditUtils()

QgsVectorLayerEditUtils::QgsVectorLayerEditUtils ( QgsVectorLayer layer)

Definition at line 34 of file qgsvectorlayereditutils.cpp.

Member Function Documentation

◆ addPart() [1/3]

Qgis::GeometryOperationResult QgsVectorLayerEditUtils::addPart ( const QgsPointSequence ring,
QgsFeatureId  featureId 
)

Adds a new part polygon to a multipart feature.

Returns
- QgsGeometry::Success
  • QgsGeometry::AddPartSelectedGeometryNotFound
  • QgsGeometry::AddPartNotMultiGeometry
  • QgsGeometry::InvalidBaseGeometry
  • QgsGeometry::InvalidInput
Note
available in python bindings as addPartV2

Definition at line 238 of file qgsvectorlayereditutils.cpp.

◆ addPart() [2/3]

Qgis::GeometryOperationResult QgsVectorLayerEditUtils::addPart ( const QVector< QgsPointXY > &  ring,
QgsFeatureId  featureId 
)

Adds a new part polygon to a multipart feature.

Returns
- QgsGeometry::Success
  • QgsGeometry::AddPartSelectedGeometryNotFound
  • QgsGeometry::AddPartNotMultiGeometry
  • QgsGeometry::InvalidBaseGeometry
  • QgsGeometry::InvalidInput

    Deprecated:
    since QGIS 3.12 - will be removed in QGIS 4.0. Use the variant which accepts QgsPoint objects instead of QgsPointXY.

Definition at line 228 of file qgsvectorlayereditutils.cpp.

◆ addPart() [3/3]

Qgis::GeometryOperationResult QgsVectorLayerEditUtils::addPart ( QgsCurve ring,
QgsFeatureId  featureId 
)

Adds a new part polygon to a multipart feature.

Returns
- QgsGeometry::Success
  • QgsGeometry::AddPartSelectedGeometryNotFound
  • QgsGeometry::AddPartNotMultiGeometry
  • QgsGeometry::InvalidBaseGeometry
  • QgsGeometry::InvalidInput
Note
available in python bindings as addCurvedPart

Definition at line 273 of file qgsvectorlayereditutils.cpp.

◆ addRing() [1/3]

Qgis::GeometryOperationResult QgsVectorLayerEditUtils::addRing ( const QgsPointSequence ring,
const QgsFeatureIds targetFeatureIds = QgsFeatureIds(),
QgsFeatureId modifiedFeatureId = nullptr 
)

Adds a ring to polygon/multipolygon features.

Parameters
ringring to add
targetFeatureIdsif specified, only these features will be the candidates for adding a ring. Otherwise all intersecting features are tested and the ring is added to the first valid feature.
modifiedFeatureIdif specified, feature ID for feature that ring was added to will be stored in this parameter
Returns
OperationResult result code: success or reason of failure

Definition at line 200 of file qgsvectorlayereditutils.cpp.

◆ addRing() [2/3]

Qgis::GeometryOperationResult QgsVectorLayerEditUtils::addRing ( const QVector< QgsPointXY > &  ring,
const QgsFeatureIds targetFeatureIds = QgsFeatureIds(),
QgsFeatureId modifiedFeatureId = nullptr 
)

Adds a ring to polygon/multipolygon features.

Parameters
ringring to add
targetFeatureIdsif specified, only these features will be the candidates for adding a ring. Otherwise all intersecting features are tested and the ring is added to the first valid feature.
modifiedFeatureIdif specified, feature ID for feature that ring was added to will be stored in this parameter
Returns
OperationResult result code: success or reason of failure
Deprecated:
since QGIS 3.12 - will be removed in QGIS 4.0. Use the variant which accepts QgsPoint objects instead of QgsPointXY.

Definition at line 190 of file qgsvectorlayereditutils.cpp.

◆ addRing() [3/3]

Qgis::GeometryOperationResult QgsVectorLayerEditUtils::addRing ( QgsCurve ring,
const QgsFeatureIds targetFeatureIds = QgsFeatureIds(),
QgsFeatureId modifiedFeatureId = nullptr 
)

Adds a ring to polygon/multipolygon features.

Parameters
ringring to add
targetFeatureIdsif specified, only these features will be the candidates for adding a ring. Otherwise all intersecting features are tested and the ring is added to the first valid feature.
modifiedFeatureIdif specified, feature ID for feature that ring was added to will be stored in this parameter
Returns
OperationResult result code: success or reason of failure
Note
available in python bindings as addCurvedRing

Definition at line 206 of file qgsvectorlayereditutils.cpp.

◆ addRingV2()

Qgis::GeometryOperationResult QgsVectorLayerEditUtils::addRingV2 ( QgsCurve ring,
const QgsFeatureIds targetFeatureIds = QgsFeatureIds(),
QgsFeatureIds modifiedFeatureIds = nullptr 
)

Adds a ring to polygon/multipolygon features.

Parameters
ringring to add (ownership is transferred)
targetFeatureIdsif specified, only these features will be the candidates for adding a ring. Otherwise all intersecting features are tested and the ring is added to all valid features.
modifiedFeatureIdsif specified, feature IDS for features that ring was added to will be stored in this parameter
Returns
OperationResult result code: success or reason of failure
Since
QGIS 3.28

Definition at line 219 of file qgsvectorlayereditutils.cpp.

◆ addTopologicalPoints() [1/4]

int QgsVectorLayerEditUtils::addTopologicalPoints ( const QgsGeometry geom)

Adds topological points for every vertex of the geometry.

Parameters
geomthe geometry where each vertex is added to segments of other features
Returns
0 in case of success
1 in case of error
2 in case no vertices needed to be added
Note
geom is not going to be modified by the function

Definition at line 577 of file qgsvectorlayereditutils.cpp.

◆ addTopologicalPoints() [2/4]

int QgsVectorLayerEditUtils::addTopologicalPoints ( const QgsPoint p)

Adds a vertex to segments which intersect point p but don't already have a vertex there.

If a feature already has a vertex at position p, no additional vertex is inserted. This method is useful for topological editing.

Returns
0 in case of success
1 in case of error
2 in case no vertices needed to be added
Since
QGIS 3.10

Definition at line 602 of file qgsvectorlayereditutils.cpp.

◆ addTopologicalPoints() [3/4]

int QgsVectorLayerEditUtils::addTopologicalPoints ( const QgsPointSequence ps)

Adds a vertex to segments which intersect point p but don't already have a vertex there.

If a feature already has a vertex at position p, no additional vertex is inserted. This method is useful for topological editing.

Returns
0 in case of success
1 in case of error
2 in case vertex already exists or point does not intersect segment
Since
QGIS 3.16

Definition at line 681 of file qgsvectorlayereditutils.cpp.

◆ addTopologicalPoints() [4/4]

int QgsVectorLayerEditUtils::addTopologicalPoints ( const QgsPointXY p)

Adds a vertex to segments which intersect point p but don't already have a vertex there.

If a feature already has a vertex at position p, no additional vertex is inserted. This method is useful for topological editing.

Returns
0 in case of success
1 in case of error
2 in case no vertices needed to be added

Definition at line 706 of file qgsvectorlayereditutils.cpp.

◆ deleteVertex()

Qgis::VectorEditResult QgsVectorLayerEditUtils::deleteVertex ( QgsFeatureId  featureId,
int  vertex 
)

Deletes a vertex from a feature.

Parameters
featureIdID of feature to remove vertex from
vertexindex of vertex to delete
Since
QGIS 2.14

Definition at line 97 of file qgsvectorlayereditutils.cpp.

◆ insertVertex() [1/2]

bool QgsVectorLayerEditUtils::insertVertex ( const QgsPoint point,
QgsFeatureId  atFeatureId,
int  beforeVertex 
)

Inserts a new vertex before the given vertex number, in the given ring, item (first number is index 0), and feature Not meaningful for Point geometries.

Definition at line 56 of file qgsvectorlayereditutils.cpp.

◆ insertVertex() [2/2]

bool QgsVectorLayerEditUtils::insertVertex ( double  x,
double  y,
QgsFeatureId  atFeatureId,
int  beforeVertex 
)

Insert a new vertex before the given vertex number, in the given ring, item (first number is index 0), and feature Not meaningful for Point geometries.

Definition at line 39 of file qgsvectorlayereditutils.cpp.

◆ moveVertex() [1/2]

bool QgsVectorLayerEditUtils::moveVertex ( const QgsPoint p,
QgsFeatureId  atFeatureId,
int  atVertex 
)

Moves the vertex at the given position number, ring and item (first number is index 0), and feature to the given coordinates.

Note
available in Python bindings as moveVertexV2

Definition at line 79 of file qgsvectorlayereditutils.cpp.

◆ moveVertex() [2/2]

bool QgsVectorLayerEditUtils::moveVertex ( double  x,
double  y,
QgsFeatureId  atFeatureId,
int  atVertex 
)

Moves the vertex at the given position number, ring and item (first number is index 0), and feature to the given coordinates.

Definition at line 73 of file qgsvectorlayereditutils.cpp.

◆ splitFeatures() [1/3]

Qgis::GeometryOperationResult QgsVectorLayerEditUtils::splitFeatures ( const QgsCurve curve,
QgsPointSequence topologyTestPoints,
bool  preserveCircular = false,
bool  topologicalEditing = false 
)

Splits features cut by the given curve.

Parameters
curveline that splits the layer features
[out]topologyTestPointstopological points to be tested against other layers
preserveCircularwhether circular strings are preserved after splitting
topologicalEditingtrue if topological editing is enabled
Returns
QgsGeometry::OperationResult
Since
QGIS 3.16

Definition at line 346 of file qgsvectorlayereditutils.cpp.

◆ splitFeatures() [2/3]

Qgis::GeometryOperationResult QgsVectorLayerEditUtils::splitFeatures ( const QgsPointSequence splitLine,
bool  topologicalEditing = false 
)

Splits features cut by the given line.

Parameters
splitLineline that splits the layer features
topologicalEditingtrue if topological editing is enabled
Returns
QgsGeometry::OperationResult

Definition at line 338 of file qgsvectorlayereditutils.cpp.

◆ splitFeatures() [3/3]

Qgis::GeometryOperationResult QgsVectorLayerEditUtils::splitFeatures ( const QVector< QgsPointXY > &  splitLine,
bool  topologicalEditing = false 
)

Splits features cut by the given line.

Parameters
splitLineline that splits the layer features
topologicalEditingtrue if topological editing is enabled
Returns
QgsGeometry::OperationResult
Deprecated:
since QGIS 3.12 - will be removed in QGIS 4.0. Use the variant which accepts QgsPoint objects instead of QgsPointXY.

Definition at line 328 of file qgsvectorlayereditutils.cpp.

◆ splitParts() [1/2]

Qgis::GeometryOperationResult QgsVectorLayerEditUtils::splitParts ( const QgsPointSequence splitLine,
bool  topologicalEditing = false 
)

Splits parts cut by the given line.

Parameters
splitLineline that splits the layer feature parts
topologicalEditingtrue if topological editing is enabled
Returns
- QgsGeometry::InvalidBaseGeometry
  • QgsGeometry::Success
  • QgsGeometry::InvalidInput
  • QgsGeometry::NothingHappened if a selection is present but no feature has been split
  • QgsGeometry::InvalidBaseGeometry
  • QgsGeometry::GeometryEngineError
  • QgsGeometry::SplitCannotSplitPoint

Definition at line 468 of file qgsvectorlayereditutils.cpp.

◆ splitParts() [2/2]

Qgis::GeometryOperationResult QgsVectorLayerEditUtils::splitParts ( const QVector< QgsPointXY > &  splitLine,
bool  topologicalEditing = false 
)

Splits parts cut by the given line.

Parameters
splitLineline that splits the layer feature parts
topologicalEditingtrue if topological editing is enabled
Returns
- QgsGeometry::InvalidBaseGeometry
  • QgsGeometry::Success
  • QgsGeometry::InvalidInput
  • QgsGeometry::NothingHappened if a selection is present but no feature has been split
  • QgsGeometry::InvalidBaseGeometry
  • QgsGeometry::GeometryEngineError
  • QgsGeometry::SplitCannotSplitPoint

    Deprecated:
    since QGIS 3.12 - will be removed in QGIS 4.0. Use the variant which accepts QgsPoint objects instead of QgsPointXY.

Definition at line 458 of file qgsvectorlayereditutils.cpp.

◆ translateFeature()

int QgsVectorLayerEditUtils::translateFeature ( QgsFeatureId  featureId,
double  dx,
double  dy 
)

Translates feature by dx, dy.

Parameters
featureIdid of the feature to translate
dxtranslation of x-coordinate
dytranslation of y-coordinate
Returns
0 in case of success

Definition at line 309 of file qgsvectorlayereditutils.cpp.


The documentation for this class was generated from the following files: