32 mCursor = QCursor( Qt::OpenHandCursor );
37 mCanvas->ungrabGesture( Qt::PinchGesture );
42 mCanvas->grabGesture( Qt::PinchGesture );
48 mCanvas->ungrabGesture( Qt::PinchGesture );
59 if ( e->button() == Qt::LeftButton )
61 mCanvas->setCursor( QCursor( Qt::ClosedHandCursor ) );
71 if ( ( e->buttons() & Qt::LeftButton ) )
84 if ( e->button() == Qt::LeftButton )
119 if ( !QTouchDevice::devices().isEmpty() && !mPinching )
127 if ( QTouchDevice::devices().isEmpty() )
130 if ( QGesture *gesture = event->gesture( Qt::PinchGesture ) )
133 pinchTriggered(
static_cast<QPinchGesture *
>( gesture ) );
138 void QgsMapToolPan::pinchTriggered( QPinchGesture *gesture )
140 if ( gesture->state() == Qt::GestureFinished )
143 if ( 0.98 < gesture->totalScaleFactor() && gesture->totalScaleFactor() < 1.02 )
150 QPoint pos = gesture->centerPoint().toPoint();
151 pos =
mCanvas->mapFromGlobal( pos );
155 r.
scale( 1 / gesture->totalScaleFactor(), ¢er );
Custom exception class for Coordinate Reference System related exceptions.
A general purpose distance and area calculator, capable of performing ellipsoid based calculations.
double bearing(const QgsPointXY &p1, const QgsPointXY &p2) const SIP_THROW(QgsCsException)
Computes the bearing (in radians) between two points.
double measureLine(const QVector< QgsPointXY > &points) const
Measures the length of a line with multiple segments.
void setSourceCrs(const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context)
Sets source spatial reference system crs.
bool setEllipsoid(const QString &ellipsoid)
Sets the ellipsoid by its acronym.
QgsUnitTypes::DistanceUnit lengthUnits() const
Returns the units of distance for length calculations made by this object.
@ MapPanOnSingleClick
A map pan interaction caused by a single click and release on the map canvas.
Map canvas is a class for displaying all GIS data types on a canvas.
void setExtent(const QgsRectangle &r, bool magnified=false)
Sets the extent of the map canvas to the specified rectangle.
QgsPointXY center() const
Gets map center, in geographical coordinates.
void zoomWithCenter(int x, int y, bool zoomIn)
Zooms in/out with a given center.
void panAction(QMouseEvent *event)
Called when mouse is moving and pan is activated.
void zoomOut()
Zoom out with fixed factor.
void panActionEnd(QPoint releasePoint)
Ends pan action and redraws the canvas.
void panActionStart(QPoint releasePoint)
Starts a pan action.
void setCenter(const QgsPointXY ¢er)
Set the center of the map canvas, in geographical coordinates.
bool allowInteraction(QgsMapCanvasInteractionBlocker::Interaction interaction) const
Returns true if the specified interaction is currently permitted on the canvas.
const QgsMapToPixel * getCoordinateTransform()
Gets the current coordinate transform.
const QgsMapSettings & mapSettings() const
Gets access to properties used for map rendering.
QgsRectangle extent() const
Returns the current zoom extent of the map canvas.
void refresh()
Repaints the canvas map.
A QgsMapMouseEvent is the result of a user interaction with the mouse on a QgsMapCanvas.
QgsCoordinateReferenceSystem destinationCrs() const
Returns the destination coordinate reference system for the map render.
QgsPointXY toMapCoordinates(int x, int y) const
Transforms device coordinates to map (world) coordinates.
A class to represent a 2D point.
static QgsProject * instance()
Returns the QgsProject singleton instance.
QgsCoordinateTransformContext transformContext
A rectangle specified with double values.
void scale(double scaleFactor, const QgsPointXY *c=nullptr)
Scale the rectangle around its center point.