QGIS API Documentation  3.21.0-Master (5b68dc587e)
Signals | Public Member Functions | Protected Member Functions | Friends | List of all members
QgsMapToolDigitizeFeature Class Reference

This tool digitizes geometry of new point/line/polygon features on already existing vector layers Once the map tool is enabled, user can digitize the feature geometry. More...

#include <qgsmaptooldigitizefeature.h>

Inheritance diagram for QgsMapToolDigitizeFeature:
Inheritance graph
[legend]

Signals

void digitizingCompleted (const QgsFeature &feature)
 Emitted whenever the digitizing has been successfully completed. More...
 
void digitizingFinished ()
 Emitted whenever the digitizing has been ended without digitizing any feature. More...
 
- Signals inherited from QgsMapTool
void activated ()
 signal emitted once the map tool is activated More...
 
void deactivated ()
 signal emitted once the map tool is deactivated More...
 
void messageDiscarded ()
 emit signal to clear previous message More...
 
void messageEmitted (const QString &message, Qgis::MessageLevel=Qgis::MessageLevel::Info)
 emit a message More...
 

Public Member Functions

 QgsMapToolDigitizeFeature (QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget, CaptureMode mode=QgsMapToolCapture::CaptureNone)
 QgsMapToolDigitizeFeature is a map tool to digitize a feature geometry. More...
 
void activate () override
 Registers this maptool with the cad dock widget. More...
 
void cadCanvasReleaseEvent (QgsMapMouseEvent *e) override
 Override this method when subclassing this class. More...
 
QgsMapToolCapture::Capabilities capabilities () const override
 Returns flags containing the supported capabilities. More...
 
void deactivate () override
 Unregisters this maptool from the cad dock widget. More...
 
void setLayer (QgsMapLayer *vl)
 Change the layer edited by the map tool. More...
 
bool supportsTechnique (CaptureTechnique technique) const override
 Returns true if the tool supports the specified capture technique. More...
 
- Public Member Functions inherited from QgsMapToolCapture
 QgsMapToolCapture (QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget, CaptureMode mode)
 constructor More...
 
 ~QgsMapToolCapture () override
 
int addCurve (QgsCurve *c)
 Adds a whole curve (e.g. circularstring) to the captured geometry. Curve must be in map CRS. More...
 
void cadCanvasMoveEvent (QgsMapMouseEvent *e) override
 Override this method when subclassing this class. More...
 
const QgsCompoundCurvecaptureCurve () const
 Gets the capture curve. More...
 
void clean () override
 convenient method to clean members More...
 
void clearCurve ()
 Clear capture curve. More...
 
void deleteTempRubberBand ()
 Clean a temporary rubberband. More...
 
void keyPressEvent (QKeyEvent *e) override
 Intercept key events like Esc or Del to delete the last point. More...
 
CaptureMode mode () const
 The capture mode. More...
 
QList< QgsPointLocator::MatchsnappingMatches () const
 Returns a list of matches for each point on the captureCurve. More...
 
QgsRubberBandtakeRubberBand ()
 Returns the rubberBand currently owned by this map tool and transfers ownership to the caller. More...
 
- Public Member Functions inherited from QgsMapToolAdvancedDigitizing
 QgsMapToolAdvancedDigitizing (QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget)
 Creates an advanced digitizing maptool. More...
 
virtual void cadCanvasPressEvent (QgsMapMouseEvent *e)
 Override this method when subclassing this class. More...
 
QgsAdvancedDigitizingDockWidgetcadDockWidget () const
 
void canvasMoveEvent (QgsMapMouseEvent *e) override
 Catch the mouse move event, filters it, transforms it to map coordinates and send it to virtual method. More...
 
void canvasPressEvent (QgsMapMouseEvent *e) override
 Catch the mouse press event, filters it, transforms it to map coordinates and send it to virtual method. More...
 
void canvasReleaseEvent (QgsMapMouseEvent *e) override
 Catch the mouse release event, filters it, transforms it to map coordinates and send it to virtual method. More...
 
bool isAdvancedDigitizingAllowed () const
 Returns whether functionality of advanced digitizing dock widget is currently allowed. More...
 
bool isAutoSnapEnabled () const
 Returns whether mouse events (press/move/release) should automatically try to snap mouse position (according to the snapping configuration of map canvas) before passing the mouse coordinates to the tool. More...
 
virtual QgsMapLayerlayer () const
 Returns the layer associated with the map tool. More...
 
void setSnapToLayerGridEnabled (bool snapToLayerGridEnabled)
 Enables or disables snap to grid of mouse events. More...
 
bool snapToLayerGridEnabled () const
 Enables or disables snap to grid of mouse events. More...
 
- Public Member Functions inherited from QgsMapToolEdit
 QgsMapToolEdit (QgsMapCanvas *canvas)
 
double defaultMValue () const
 Returns default M value. More...
 
double defaultZValue () const
 Returns default Z value. More...
 
Flags flags () const override
 Returns the flags for the map tool. More...
 
- Public Member Functions inherited from QgsMapTool
 ~QgsMapTool () override
 
QAction * action ()
 Returns associated action with map tool or nullptr if no action is associated. More...
 
QAbstractButton * button ()
 Returns associated button with map tool or nullptr if no button is associated. More...
 
QgsMapCanvascanvas () const
 returns pointer to the tool's map canvas More...
 
virtual void canvasDoubleClickEvent (QgsMapMouseEvent *e)
 Mouse double-click event for overriding. Default implementation does nothing. More...
 
virtual bool canvasToolTipEvent (QHelpEvent *e)
 Tooltip event for overriding. More...
 
virtual bool gestureEvent (QGestureEvent *e)
 gesture event for overriding. Default implementation does nothing. More...
 
bool isActive () const
 Returns if the current map tool active on the map canvas. More...
 
virtual void keyReleaseEvent (QKeyEvent *e)
 Key event for overriding. Default implementation does nothing. More...
 
virtual void populateContextMenu (QMenu *menu)
 Allows the tool to populate and customize the given menu, prior to showing it in response to a right-mouse button click. More...
 
virtual bool populateContextMenuWithEvent (QMenu *menu, QgsMapMouseEvent *event)
 Allows the tool to populate and customize the given menu, prior to showing it in response to a right-mouse button click. More...
 
void setAction (QAction *action)
 Use this to associate a QAction to this maptool. More...
 
void setButton (QAbstractButton *button)
 Use this to associate a button to this maptool. More...
 
virtual void setCursor (const QCursor &cursor)
 Sets a user defined cursor. More...
 
QString toolName ()
 Emit map tool changed with the old tool. More...
 
virtual void wheelEvent (QWheelEvent *e)
 Mouse wheel event for overriding. Default implementation does nothing. More...
 

Protected Member Functions

bool checkGeometryType () const
 Check if CaptureMode matches layer type. More...
 
void setCheckGeometryType (bool checkGeometryType)
 Check if CaptureMode matches layer type. More...
 
- Protected Member Functions inherited from QgsMapToolCapture
int addVertex (const QgsPointXY &mapPoint, const QgsPointLocator::Match &match)
 Variant to supply more information in the case of snapping. More...
 
int addVertex (const QgsPointXY &point)
 Adds a point to the rubber band (in map coordinates) and to the capture list (in layer coordinates) More...
 
void closePolygon ()
 Close an open polygon. More...
 
int fetchLayerPoint (const QgsPointLocator::Match &match, QgsPoint &layerPoint)
 Fetches the original point from the source layer if it has the same CRS as the current layer. More...
 
bool isCapturing () const
 Are we currently capturing? More...
 
QgsPoint mapPoint (const QgsMapMouseEvent &e) const
 Creates a QgsPoint with ZM support if necessary (according to the WkbType of the current layer). More...
 
QgsPoint mapPoint (const QgsPointXY &point) const
 Creates a QgsPoint with ZM support if necessary (according to the WkbType of the current layer). More...
 
int nextPoint (const QgsPoint &mapPoint, QgsPoint &layerPoint)
 Converts a map point to layer coordinates. More...
 
int nextPoint (QPoint p, QgsPoint &layerPoint, QgsPoint &mapPoint)
 Converts a point to map coordinates and layer coordinates. More...
 
Q_DECL_DEPRECATED QVector< QgsPointXYpoints () const
 List of digitized points. More...
 
QgsPointSequence pointsZM () const
 List of digitized points. More...
 
void setPoints (const QgsPointSequence &pointList)
 Set the points on which to work. More...
 
Q_DECL_DEPRECATED void setPoints (const QVector< QgsPointXY > &pointList)
 Set the points on which to work. More...
 
int size ()
 Number of points digitized. More...
 
void startCapturing ()
 Start capturing. More...
 
void undo (bool isAutoRepeat=false)
 Removes the last vertex from mRubberBand and mCaptureList. More...
 
- Protected Member Functions inherited from QgsMapToolAdvancedDigitizing
void setAdvancedDigitizingAllowed (bool allowed)
 Sets whether functionality of advanced digitizing dock widget is currently allowed. More...
 
void setAutoSnapEnabled (bool enabled)
 Sets whether mouse events (press/move/release) should automatically try to snap mouse position This method is protected because it should be a decision of the map tool and not from elsewhere. More...
 
- Protected Member Functions inherited from QgsMapToolEdit
TopologicalResult addTopologicalPoints (const QVector< QgsPoint > &vertices)
 Adds a list of vertices to other features to keep topology up to date, e.g. More...
 
Q_DECL_DEPRECATED TopologicalResult addTopologicalPoints (const QVector< QgsPointXY > &vertices)
 Adds a list of vertices to other features to keep topology up to date, e.g. More...
 
QgsGeometryRubberBandcreateGeometryRubberBand (QgsWkbTypes::GeometryType geometryType=QgsWkbTypes::LineGeometry, bool alternativeBand=false) const
 
QgsRubberBandcreateRubberBand (QgsWkbTypes::GeometryType geometryType=QgsWkbTypes::LineGeometry, bool alternativeBand=false)
 Creates a rubber band with the color/line width from the QGIS settings. More...
 
QgsVectorLayercurrentVectorLayer ()
 Returns the current vector layer of the map canvas or 0. More...
 
void notifyNotEditableLayer ()
 Display a timed message bar noting the active vector layer is not editable. More...
 
void notifyNotVectorLayer ()
 Display a timed message bar noting the active layer is not vector. More...
 
- Protected Member Functions inherited from QgsMapTool
 QgsMapTool (QgsMapCanvas *canvas)
 Constructor takes a map canvas as a parameter. More...
 
void setToolName (const QString &name)
 Sets the tool's name. More...
 
QPoint toCanvasCoordinates (const QgsPointXY &point) const
 Transforms a point from map coordinates to screen coordinates. More...
 
QgsPointXY toLayerCoordinates (const QgsMapLayer *layer, const QgsPointXY &point)
 Transforms a point from map coordinates to layer coordinates. More...
 
QgsRectangle toLayerCoordinates (const QgsMapLayer *layer, const QgsRectangle &rect)
 Transforms a rect from map coordinates to layer coordinates. More...
 
QgsPointXY toLayerCoordinates (const QgsMapLayer *layer, QPoint point)
 Transforms a point from screen coordinates to layer coordinates. More...
 
QgsPoint toMapCoordinates (const QgsMapLayer *layer, const QgsPoint &point)
 Transforms a point from layer coordinates to map coordinates (which is different in case reprojection is used). More...
 
QgsPointXY toMapCoordinates (const QgsMapLayer *layer, const QgsPointXY &point)
 Transforms a point from layer coordinates to map coordinates (which is different in case reprojection is used). More...
 
QgsPointXY toMapCoordinates (QPoint point)
 Transforms a point from screen coordinates to map coordinates. More...
 

Friends

class TestQgsRelationReferenceWidget
 

Additional Inherited Members

- Public Types inherited from QgsMapToolCapture
enum  Capability { NoCapabilities = 1 << 0 , SupportsCurves = 1 << 1 , ValidateGeometries = 1 << 2 }
 Specific capabilities of the tool. More...
 
enum  CaptureMode { CaptureNone , CapturePoint , CaptureLine , CapturePolygon }
 Different capture modes. More...
 
enum  CaptureTechnique { StraightSegments , CircularString , Streaming }
 Capture technique. More...
 
- Public Types inherited from QgsMapTool
enum  Flag { Transient = 1 << 1 , EditTool = 1 << 2 , AllowZoomRect = 1 << 3 , ShowContextMenu = 1 << 4 }
 Enumeration of flags that adjust the way the map tool operates. More...
 
- Public Slots inherited from QgsMapToolCapture
void setCircularDigitizingEnabled (bool enable)
 Enable the digitizing with curve. More...
 
void setStreamDigitizingEnabled (bool enable)
 Toggles the stream digitizing mode. More...
 
- Static Public Member Functions inherited from QgsMapTool
static double searchRadiusMM ()
 Gets search radius in mm. More...
 
static double searchRadiusMU (const QgsRenderContext &context)
 Gets search radius in map units for given context. More...
 
static double searchRadiusMU (QgsMapCanvas *canvas)
 Gets search radius in map units for given canvas. More...
 
- Protected Types inherited from QgsMapToolEdit
enum  TopologicalResult { Success = 0 , InvalidCanvas = 1 , InvalidLayer = 2 }
 Result of addTopologicalPoints. More...
 
- Protected Slots inherited from QgsMapToolCapture
void stopCapturing ()
 Stop capturing. More...
 
- Static Protected Member Functions inherited from QgsMapToolEdit
static QColor digitizingFillColor ()
 Returns fill color for rubber bands (from global settings) More...
 
static QColor digitizingStrokeColor ()
 Returns stroke color for rubber bands (from global settings) More...
 
static int digitizingStrokeWidth ()
 Returns stroke width for rubber bands (from global settings) More...
 
- Protected Attributes inherited from QgsMapToolAdvancedDigitizing
QgsAdvancedDigitizingDockWidgetmCadDockWidget = nullptr
 
- Protected Attributes inherited from QgsMapTool
QAction * mAction = nullptr
 Optional pointer to an action that will be checked on map tool activation and unchecked on map tool deactivation. More...
 
QAbstractButton * mButton = nullptr
 Optional pointer to a button that will be checked on map tool activation and unchecked on map tool deactivation. More...
 
QgsMapCanvasmCanvas = nullptr
 The pointer to the map canvas. More...
 
QCursor mCursor
 The cursor used in the map tool. More...
 
QString mToolName
 The translated name of the map tool. More...
 

Detailed Description

This tool digitizes geometry of new point/line/polygon features on already existing vector layers Once the map tool is enabled, user can digitize the feature geometry.

A signal will then be emitted.

Since
QGIS 3.10

Definition at line 31 of file qgsmaptooldigitizefeature.h.

Constructor & Destructor Documentation

◆ QgsMapToolDigitizeFeature()

QgsMapToolDigitizeFeature::QgsMapToolDigitizeFeature ( QgsMapCanvas canvas,
QgsAdvancedDigitizingDockWidget cadDockWidget,
CaptureMode  mode = QgsMapToolCapture::CaptureNone 
)

QgsMapToolDigitizeFeature is a map tool to digitize a feature geometry.

Parameters
canvasthe map canvas
cadDockWidgetwidget to setup advanced digitizing parameters
modetype of geometry to capture (point/line/polygon), QgsMapToolCapture::CaptureNone to autodetect geometry

Definition at line 37 of file qgsmaptooldigitizefeature.cpp.

Member Function Documentation

◆ activate()

void QgsMapToolDigitizeFeature::activate ( )
overridevirtual

Registers this maptool with the cad dock widget.

Reimplemented from QgsMapToolCapture.

Definition at line 69 of file qgsmaptooldigitizefeature.cpp.

◆ cadCanvasReleaseEvent()

void QgsMapToolDigitizeFeature::cadCanvasReleaseEvent ( QgsMapMouseEvent e)
overridevirtual

Override this method when subclassing this class.

This will receive adapted events from the cad system whenever a canvasReleaseEvent is triggered and it's not hidden by the cad's construction mode.

Parameters
eMouse events prepared by the cad system

Reimplemented from QgsMapToolAdvancedDigitizing.

Definition at line 113 of file qgsmaptooldigitizefeature.cpp.

◆ capabilities()

QgsMapToolCapture::Capabilities QgsMapToolDigitizeFeature::capabilities ( ) const
overridevirtual

Returns flags containing the supported capabilities.

Reimplemented from QgsMapToolCapture.

Definition at line 46 of file qgsmaptooldigitizefeature.cpp.

◆ checkGeometryType()

bool QgsMapToolDigitizeFeature::checkGeometryType ( ) const
protected

Check if CaptureMode matches layer type.

Default is true.

Since
QGIS 3.0

Definition at line 103 of file qgsmaptooldigitizefeature.cpp.

◆ deactivate()

void QgsMapToolDigitizeFeature::deactivate ( )
overridevirtual

Unregisters this maptool from the cad dock widget.

Reimplemented from QgsMapToolCapture.

Definition at line 93 of file qgsmaptooldigitizefeature.cpp.

◆ digitizingCompleted

void QgsMapToolDigitizeFeature::digitizingCompleted ( const QgsFeature feature)
signal

Emitted whenever the digitizing has been successfully completed.

Parameters
featurethe new digitized feature

◆ digitizingFinished

void QgsMapToolDigitizeFeature::digitizingFinished ( )
signal

Emitted whenever the digitizing has been ended without digitizing any feature.

◆ setCheckGeometryType()

void QgsMapToolDigitizeFeature::setCheckGeometryType ( bool  checkGeometryType)
protected

Check if CaptureMode matches layer type.

Default is true.

Since
QGIS 3.0

Definition at line 108 of file qgsmaptooldigitizefeature.cpp.

◆ setLayer()

void QgsMapToolDigitizeFeature::setLayer ( QgsMapLayer vl)

Change the layer edited by the map tool.

Parameters
vlthe layer to be edited by the map tool

Definition at line 359 of file qgsmaptooldigitizefeature.cpp.

◆ supportsTechnique()

bool QgsMapToolDigitizeFeature::supportsTechnique ( CaptureTechnique  technique) const
overridevirtual

Returns true if the tool supports the specified capture technique.

Since
QGIS 3.20

Reimplemented from QgsMapToolCapture.

Definition at line 51 of file qgsmaptooldigitizefeature.cpp.

Friends And Related Function Documentation

◆ TestQgsRelationReferenceWidget

friend class TestQgsRelationReferenceWidget
friend

Definition at line 113 of file qgsmaptooldigitizefeature.h.


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