Class: QgsMapToolDigitizeFeature¶
- class qgis.gui.QgsMapToolDigitizeFeature¶
Bases:
QgsMapToolCaptureLayerGeometry
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.
New in version 3.10.
QgsMapToolDigitizeFeature(canvas:
QgsMapCanvas
, cadDockWidget:QgsAdvancedDigitizingDockWidget
, mode: QgsMapToolCapture.CaptureMode = QgsMapToolCapture.CaptureNone)QgsMapToolDigitizeFeature
is a map tool to digitize a feature geometry- Parameters:
canvas – the map canvas
cadDockWidget – widget to setup advanced digitizing parameters
mode –
type of geometry to capture (point/line/polygon),
QgsMapToolCapture
.CaptureNone to autodetect geometryMethods
Adds a list of
vertices
to other features to keep topology up to date, e.g.Adds a point to the rubber band (in map coordinates) and to the capture list (in layer coordinates)
- param e:
- rtype:
QgsMapToolCapture.Capabilities
Check if CaptureMode matches layer type.
Close an open polygon
Creates a rubber band with the color/line width from the QGIS settings.
Returns the current vector layer of the map canvas or 0
Returns fill color for rubber bands (from global settings)
Returns stroke color for rubber bands (from global settings)
Returns stroke width for rubber bands (from global settings)
Fetches the original point from the source layer if it has the same CRS as the current layer.
Are we currently capturing?
- param e:
Converts a map point to layer coordinates
Display a timed message bar noting the active vector layer is not editable.
Display a timed message bar noting the active layer is not vector.
List of digitized points
List of digitized points
Sets whether functionality of advanced digitizing dock widget is currently allowed.
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.
Check if CaptureMode matches layer type.
Change the layer edited by the map tool
Set the points on which to work
Sets the tool's
name
.Number of points digitized
Start capturing
Stop capturing
- param technique:
Transforms a
point
from map coordinates to screen coordinates.Transforms a
point
from screen coordinates tolayer
coordinates.Transforms a
point
from map coordinates tolayer
coordinates.Transforms a
point
from screen coordinates to map coordinates.Transforms a
point
fromlayer
coordinates to map coordinates (which is different in case reprojection is used).Removes the last vertex from mRubberBand and mCaptureList.
Signals
pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL
pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL
pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL
- activate(self)¶
- addTopologicalPoints(self, vertices: Iterable[QgsPointXY]) QgsMapToolEdit.TopologicalResult ¶
Adds a list of
vertices
to other features to keep topology up to date, e.g. to neighbouring polygons. Thevertices
list specifies a set of topological points to add, in the layer’s coordinate reference system.Deprecated since version QGIS: 3.12 - will be removed in QGIS 4.0. Use the variant which accepts
QgsPoint
objects instead ofQgsPointXY
.addTopologicalPoints(self, vertices: Iterable[QgsPoint]) -> QgsMapToolEdit.TopologicalResult Adds a list of
vertices
to other features to keep topology up to date, e.g. to neighbouring polygons. Thevertices
list specifies a set of topological points to add, in the layer’s coordinate reference system.New in version 3.10.
- addVertex(self, point: QgsPointXY) int ¶
Adds a point to the rubber band (in map coordinates) and to the capture list (in layer coordinates)
- Returns:
0 in case of success, 2 if coordinate transformation failed
addVertex(self, mapPoint:
QgsPointXY
, match: QgsPointLocator.Match) -> int Variant to supply more information in the case of snapping- Parameters:
mapPoint – The vertex to add in map coordinates
match – Data about the snapping match. Can be an invalid match, if point not snapped.
New in version 2.14.
- cadCanvasReleaseEvent(self, e: QgsMapMouseEvent)¶
- Parameters:
e (QgsMapMouseEvent) –
- capabilities(self) QgsMapToolCapture.Capabilities ¶
- Return type:
- checkGeometryType(self) bool ¶
Check if CaptureMode matches layer type. Default is
True
.New in version 3.0.
- Return type:
bool
- childEvent(self, QChildEvent)¶
- closePolygon(self)¶
Close an open polygon
- connectNotify(self, QMetaMethod)¶
- createRubberBand(self, geometryType: Qgis.GeometryType = Qgis.GeometryType.Line, alternativeBand: bool = False) QgsRubberBand ¶
Creates a rubber band with the color/line width from the QGIS settings. The caller takes ownership of the returned object
- Parameters:
geometryType –
alternativeBand – if
True
, rubber band will be set with more transparency and a dash pattern. default isFalse
.
- currentVectorLayer(self) QgsVectorLayer ¶
Returns the current vector layer of the map canvas or 0
- customEvent(self, QEvent)¶
- deactivate(self)¶
- digitizingCanceled¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Parameters:
name (str = ...) –
revision (int = ...) –
arguments (Sequence = ...) –
- Return type:
PYQT_SIGNAL
- digitizingCompleted¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Parameters:
name (str = ...) –
revision (int = ...) –
arguments (Sequence = ...) –
- Return type:
PYQT_SIGNAL
- digitizingFillColor() QColor ¶
Returns fill color for rubber bands (from global settings)
- digitizingFinished¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Parameters:
name (str = ...) –
revision (int = ...) –
arguments (Sequence = ...) –
- Return type:
PYQT_SIGNAL
- digitizingStrokeColor() QColor ¶
Returns stroke color for rubber bands (from global settings)
- digitizingStrokeWidth() int ¶
Returns stroke width for rubber bands (from global settings)
- disconnectNotify(self, QMetaMethod)¶
- featureDigitized()¶
- fetchLayerPoint(self, match: QgsPointLocator.Match, layerPoint: QgsPoint) int ¶
Fetches the original point from the source layer if it has the same CRS as the current layer. If topological editing is activated, the points are projected to the current layer CRS.
- Returns:
0 in case of success 1 if not applicable (CRS mismatch / invalid layer) 2 in case of failure
New in version 2.14.
- isCapturing(self) bool ¶
Are we currently capturing?
- Returns:
Is the tool in capture mode?
- isSignalConnected(self, QMetaMethod) bool ¶
- keyPressEvent(self, e: QKeyEvent)¶
- Parameters:
e (QKeyEvent) –
- nextPoint(self, mapPoint: QgsPoint, layerPoint: QgsPoint) int ¶
Converts a map point to layer coordinates
- Parameters:
mapPoint – the point in map coordinates
param[in,out] layerPoint the point in layer coordinates
- Returns:
0 in case of success 1 if the current layer is
None
2 if the transformation failed
nextPoint(self, p: QPoint, layerPoint:
QgsPoint
, mapPoint:QgsPoint
) -> int Converts a point to map coordinates and layer coordinates- Parameters:
p – the input point
param[in,out] layerPoint the point in layer coordinates param[in,out] mapPoint the point in map coordinates
- Returns:
0 in case of success 1 if the current layer is
None
or not a vector layer 2 if the transformation failed
- notifyNotEditableLayer(self)¶
Display a timed message bar noting the active vector layer is not editable.
- notifyNotVectorLayer(self)¶
Display a timed message bar noting the active layer is not vector.
- points(self) List[QgsPointXY] ¶
List of digitized points
- Returns:
List of points
Deprecated since version QGIS: 3.12 - will be removed in QGIS 4.0. Use the variant returns
QgsPoint
objects instead ofQgsPointXY
.
- pointsZM(self) List[QgsPoint] ¶
List of digitized points
- Returns:
List of points
New in version 3.12.
- receivers(self, PYQT_SIGNAL) int ¶
- sender(self) QObject ¶
- senderSignalIndex(self) int ¶
- setAdvancedDigitizingAllowed(self, allowed: bool)¶
Sets whether functionality of advanced digitizing dock widget is currently allowed. This method is protected because it should be a decision of the map tool and not from elsewhere. sa
isAdvancedDigitizingAllowed()
New in version 3.0.
- setAutoSnapEnabled(self, enabled: bool)¶
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. sa
isAutoSnapEnabled()
New in version 3.0.
- setCheckGeometryType(self, checkGeometryType: bool)¶
Check if CaptureMode matches layer type. Default is
True
.New in version 3.0.
- Parameters:
checkGeometryType (bool) –
- setLayer(self, vl: QgsMapLayer)¶
Change the layer edited by the map tool
- Parameters:
vl (QgsMapLayer) – the layer to be edited by the map tool
- setPoints(self, pointList: Iterable[QgsPointXY])¶
Set the points on which to work
- Parameters:
pointList – A list of points
Deprecated since version QGIS: 3.12 - will be removed in QGIS 4.0. Use the variant which accepts
QgsPoint
objects instead ofQgsPointXY
.setPoints(self, pointList: Iterable[QgsPoint]) Set the points on which to work
- Parameters:
pointList – A list of points
New in version 3.12.
- setToolName(self, name: str)¶
Sets the tool’s
name
.See also
toolName()
New in version 3.20.
- size(self) int ¶
Number of points digitized
- Returns:
Number of points
- startCapturing(self)¶
Start capturing
- stopCapturing(self)¶
Stop capturing
- supportsTechnique(self, technique: Qgis.CaptureTechnique) bool ¶
- Parameters:
technique (Qgis.CaptureTechnique) –
- Return type:
bool
- timerEvent(self, QTimerEvent)¶
- toCanvasCoordinates(self, point: QgsPointXY) QPoint ¶
Transforms a
point
from map coordinates to screen coordinates.
- toLayerCoordinates(self, layer: QgsMapLayer, point: QPoint) QgsPointXY ¶
Transforms a
point
from screen coordinates tolayer
coordinates.toLayerCoordinates(self, layer:
QgsMapLayer
, point:QgsPointXY
) -> QgsPointXY Transforms apoint
from map coordinates tolayer
coordinates.toLayerCoordinates(self, layer:
QgsMapLayer
, rect:QgsRectangle
) -> QgsRectangle Transforms arect
from map coordinates tolayer
coordinates.
- toLayerCoordinatesV2(self, layer: QgsMapLayer, point: QgsPoint) QgsPoint ¶
Transforms a
point
from map coordinates tolayer
coordinates.Note
This method is available in the Python bindings as toLayerCoordinatesV2.
- toMapCoordinates(self, point: QPoint) QgsPointXY ¶
Transforms a
point
from screen coordinates to map coordinates.toMapCoordinates(self, layer:
QgsMapLayer
, point:QgsPointXY
) -> QgsPointXY Transforms apoint
fromlayer
coordinates to map coordinates (which is different in case reprojection is used).
- toMapCoordinatesV2(self, layer: QgsMapLayer, point: QgsPoint) QgsPoint ¶
Transforms a
point
fromlayer
coordinates to map coordinates (which is different in case reprojection is used).Note
This method is available in the Python bindings as toMapCoordinatesV2.
- undo(self, isAutoRepeat: bool = False)¶
Removes the last vertex from mRubberBand and mCaptureList.
Since QGIS 3.20, if
isAutoRepeat
is set toTrue
then the undo operation will be treated as a auto repeated undo as if the user has held down the undo key for an extended period of time.