mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-23 00:05:43 -04:00
Enable tools using extent when map is rotated
This commit is contained in:
parent
c4a75f0007
commit
0d8d101242
@ -18,6 +18,8 @@
|
||||
#include "qgsgeometryrubberband.h"
|
||||
#include "qgsmapcanvas.h"
|
||||
#include "qgspoint.h"
|
||||
#include "qgsgeometryutils.h"
|
||||
#include "qgslinestring.h"
|
||||
#include <QMouseEvent>
|
||||
|
||||
QgsMapToolEllipseExtent::QgsMapToolEllipseExtent( QgsMapToolCapture *parentTool,
|
||||
@ -67,9 +69,11 @@ void QgsMapToolEllipseExtent::cadCanvasMoveEvent( QgsMapMouseEvent *e )
|
||||
}
|
||||
else
|
||||
{
|
||||
emit messageEmitted( tr( "Cannot use this tool when the map canvas is rotated" ), QgsMessageBar::WARNING );
|
||||
mPoints.clear();
|
||||
break;
|
||||
double dist = mPoints.at( 0 ).distance( mapPoint );
|
||||
double angle = mPoints.at( 0 ).azimuth( mapPoint );
|
||||
|
||||
mEllipse = QgsEllipse().fromExtent( mPoints.at( 0 ), mPoints.at( 0 ).project( dist, angle ) );
|
||||
mTempRubberBand->setGeometry( mEllipse.toPolygon( segments() ) );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -17,8 +17,8 @@
|
||||
#include "qgsmaptoolrectanglecenter.h"
|
||||
#include "qgsgeometryrubberband.h"
|
||||
#include "qgsgeometryutils.h"
|
||||
#include "qgslinestring.h"
|
||||
#include "qgsmapcanvas.h"
|
||||
#include "qgslinestring.h"
|
||||
#include "qgspoint.h"
|
||||
#include <QMouseEvent>
|
||||
#include <memory>
|
||||
@ -74,9 +74,11 @@ void QgsMapToolRectangleCenter::cadCanvasMoveEvent( QgsMapMouseEvent *e )
|
||||
}
|
||||
else
|
||||
{
|
||||
emit messageEmitted( tr( "Cannot use this tool when the map canvas is rotated" ), QgsMessageBar::WARNING );
|
||||
mPoints.clear();
|
||||
break;
|
||||
double dist = mPoints.at( 0 ).distance( mapPoint );
|
||||
double angle = mPoints.at( 0 ).azimuth( mapPoint );
|
||||
|
||||
mRectangle = QgsRectangle( mPoints.at( 0 ).project( -dist, angle ), mPoints.at( 0 ).project( dist, angle ) );
|
||||
mTempRubberBand->setGeometry( QgsMapToolAddRectangle::rectangleToPolygon() );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include "qgsgeometryrubberband.h"
|
||||
#include "qgsgeometryutils.h"
|
||||
#include "qgsmapcanvas.h"
|
||||
#include "qgslinestring.h"
|
||||
#include "qgspoint.h"
|
||||
#include <QMouseEvent>
|
||||
#include <memory>
|
||||
@ -69,9 +70,11 @@ void QgsMapToolRectangleExtent::cadCanvasMoveEvent( QgsMapMouseEvent *e )
|
||||
}
|
||||
else
|
||||
{
|
||||
emit messageEmitted( tr( "Cannot use this tool when the map canvas is rotated" ), QgsMessageBar::WARNING );
|
||||
mPoints.clear();
|
||||
break;
|
||||
double dist = mPoints.at( 0 ).distance( mapPoint );
|
||||
double angle = mPoints.at( 0 ).azimuth( mapPoint );
|
||||
|
||||
mRectangle = QgsRectangle( mPoints.at( 0 ), mPoints.at( 0 ).project( dist, angle ) );
|
||||
mTempRubberBand->setGeometry( QgsMapToolAddRectangle::rectangleToPolygon() );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user