Skip to content

Commit 86d9492

Browse files
committed
Remove context-unaware QgsCoordinateTransform constructors from Python bindings
This forces Python code and plugins to become datum transform aware, and given that upgrading python code is easy (just add QgsProject.instance() as a new argument to the constructor) it's relatively painless to force this on PyQGIS users. Also fix upgrade the easy QgsCoordinateTransform c++ constructors where the project is available, or where using QgsProject::instance() is safe to do. For others, just avoid the deprecated warnings until we can get access to the correct project instance where the transform is being constructed.
1 parent 91e0afb commit 86d9492

File tree

80 files changed

+208
-88
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+208
-88
lines changed

doc/api_break.dox

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -914,11 +914,12 @@ called if changes are made to the CRS database.
914914
QgsCoordinateTransform {#qgis_api_break_3_0_QgsCoordinateTransform}
915915
----------------------
916916

917-
- QgsCoordinateTransform is no longer a QObject. readXml, writeXml and initialize are all normal public members now,
917+
- QgsCoordinateTransform is no longer a QObject. Initialize is a normal public members now,
918918
not slots. The invalidTransformInput() signal has been removed.
919919
- The extra QgsCoordinateTransform constructors (those not taking QgsCoordinateReferenceSystem arguments) have been
920920
removed. Now, QgsCoordinateTransform must be created using an already existing source and destination
921-
QgsCoordinateReferenceSystem object.
921+
QgsCoordinateReferenceSystem object, and either a QgsCoordinateTransformContext object or a reference to the
922+
current project instance.
922923
- QgsCoordinateTransform::clone() has been removed. Just use direct copies instead.
923924
- sourceCrs() and destCrs() now return a copy instead of a reference to the CRS. This has no effect on PyQGIS code, but c++
924925
plugins calling these methods will need to be updated.

python/core/qgscoordinatetransform.sip

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,6 @@ class QgsCoordinateTransform
4545
Default constructor, creates an invalid QgsCoordinateTransform.
4646
%End
4747

48-
explicit QgsCoordinateTransform( const QgsCoordinateReferenceSystem &source,
49-
const QgsCoordinateReferenceSystem &destination );
50-
%Docstring
51-
Constructs a QgsCoordinateTransform using QgsCoordinateReferenceSystem objects.
52-
\param source source CRS, typically of the layer's coordinate system
53-
\param destination CRS, typically of the map canvas coordinate system
54-
%End
5548

5649
explicit QgsCoordinateTransform( const QgsCoordinateReferenceSystem &source,
5750
const QgsCoordinateReferenceSystem &destination,

python/plugins/MetaSearch/dialogs/maindialog.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939

4040
from qgis.core import (QgsApplication, QgsCoordinateReferenceSystem,
4141
QgsCoordinateTransform, QgsGeometry, QgsPointXY,
42-
QgsProviderRegistry, QgsSettings)
42+
QgsProviderRegistry, QgsSettings, QgsProject)
4343
from qgis.gui import QgsRubberBand
4444
from qgis.utils import OverrideCursor
4545

@@ -400,7 +400,7 @@ def set_bbox_from_map(self):
400400
if crsid != 4326: # reproject to EPSG:4326
401401
src = QgsCoordinateReferenceSystem(crsid)
402402
dest = QgsCoordinateReferenceSystem(4326)
403-
xform = QgsCoordinateTransform(src, dest)
403+
xform = QgsCoordinateTransform(src, dest, QgsProject.instance())
404404
minxy = xform.transform(QgsPointXY(extent.xMinimum(),
405405
extent.yMinimum()))
406406
maxxy = xform.transform(QgsPointXY(extent.xMaximum(),
@@ -570,7 +570,7 @@ def record_clicked(self):
570570
dst = self.map.mapSettings().destinationCrs()
571571
geom = QgsGeometry.fromWkt(points)
572572
if src.postgisSrid() != dst.postgisSrid():
573-
ctr = QgsCoordinateTransform(src, dst)
573+
ctr = QgsCoordinateTransform(src, dst, QgsProject.instance())
574574
try:
575575
geom.transform(ctr)
576576
except Exception as err:

python/plugins/processing/algs/qgis/ExportGeometryInfo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ def processAlgorithm(self, parameters, context, feedback):
126126
self.distance_area.setSourceCrs(source.sourceCrs())
127127
self.distance_area.setEllipsoid(context.project().ellipsoid())
128128
elif method == 1:
129-
coordTransform = QgsCoordinateTransform(source.sourceCrs(), context.project().crs())
129+
coordTransform = QgsCoordinateTransform(source.sourceCrs(), context.project().crs(), context.project())
130130

131131
features = source.getFeatures()
132132
total = 100.0 / source.featureCount() if source.featureCount() else 0

python/plugins/processing/algs/qgis/FindProjection.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
QgsFields,
3535
QgsCoordinateReferenceSystem,
3636
QgsCoordinateTransform,
37+
QgsCoordinateTransformContext,
3738
QgsWkbTypes,
3839
QgsProcessingParameterFeatureSource,
3940
QgsProcessingParameterExtent,
@@ -108,6 +109,7 @@ def processAlgorithm(self, parameters, context, feedback):
108109

109110
found_results = 0
110111

112+
transform_context = QgsCoordinateTransformContext()
111113
for current, srs_id in enumerate(crses_to_check):
112114
if feedback.isCanceled():
113115
break
@@ -116,7 +118,7 @@ def processAlgorithm(self, parameters, context, feedback):
116118
if not candidate_crs.isValid():
117119
continue
118120

119-
transform_candidate = QgsCoordinateTransform(candidate_crs, target_crs)
121+
transform_candidate = QgsCoordinateTransform(candidate_crs, target_crs, transform_context)
120122
transformed_bounds = QgsGeometry(layer_bounds)
121123
try:
122124
if not transformed_bounds.transform(transform_candidate) == 0:

python/plugins/processing/algs/qgis/SpatialJoinSummary.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ def addField(original, stat, type):
262262
total = 100.0 / source.featureCount() if source.featureCount() else 0
263263

264264
# bounding box transform
265-
bbox_transform = QgsCoordinateTransform(source.sourceCrs(), join_source.sourceCrs())
265+
bbox_transform = QgsCoordinateTransform(source.sourceCrs(), join_source.sourceCrs(), context.project())
266266

267267
for current, f in enumerate(features):
268268
if feedback.isCanceled():

src/analysis/processing/qgsalgorithmtransform.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ QgsTransformAlgorithm *QgsTransformAlgorithm::createInstance() const
7575
bool QgsTransformAlgorithm::prepareAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback * )
7676
{
7777
mDestCrs = parameterAsCrs( parameters, QStringLiteral( "TARGET_CRS" ), context );
78+
mTransformContext = context.project() ? context.project()->transformContext() : QgsCoordinateTransformContext();
7879
return true;
7980
}
8081

@@ -84,7 +85,7 @@ QgsFeature QgsTransformAlgorithm::processFeature( const QgsFeature &f, QgsProces
8485
if ( !mCreatedTransform )
8586
{
8687
mCreatedTransform = true;
87-
mTransform = QgsCoordinateTransform( sourceCrs(), mDestCrs );
88+
mTransform = QgsCoordinateTransform( sourceCrs(), mDestCrs, mTransformContext );
8889
}
8990

9091
if ( feature.hasGeometry() )

src/analysis/processing/qgsalgorithmtransform.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class QgsTransformAlgorithm : public QgsProcessingFeatureBasedAlgorithm
5656
bool mCreatedTransform = false;
5757
QgsCoordinateReferenceSystem mDestCrs;
5858
QgsCoordinateTransform mTransform;
59+
QgsCoordinateTransformContext mTransformContext;
5960

6061
};
6162

src/app/composer/qgscomposermapwidget.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ void QgsComposerMapWidget::mapCrsChanged( const QgsCoordinateReferenceSystem &cr
314314
QgsRectangle newExtent;
315315
try
316316
{
317-
QgsCoordinateTransform xForm( oldCrs, crs.isValid() ? crs : QgsProject::instance()->crs() );
317+
QgsCoordinateTransform xForm( oldCrs, crs.isValid() ? crs : QgsProject::instance()->crs(), QgsProject::instance() );
318318
QgsRectangle prevExtent = *mComposerMap->currentMapExtent();
319319
newExtent = xForm.transformBoundingBox( prevExtent );
320320
updateExtent = true;
@@ -513,7 +513,7 @@ void QgsComposerMapWidget::mSetToMapCanvasExtentButton_clicked()
513513
try
514514
{
515515
QgsCoordinateTransform xForm( QgisApp::instance()->mapCanvas()->mapSettings().destinationCrs(),
516-
mComposerMap->crs() );
516+
mComposerMap->crs(), QgsProject::instance() );
517517
newExtent = xForm.transformBoundingBox( newExtent );
518518
}
519519
catch ( QgsCsException & )
@@ -546,7 +546,7 @@ void QgsComposerMapWidget::mViewExtentInCanvasButton_clicked()
546546
try
547547
{
548548
QgsCoordinateTransform xForm( mComposerMap->crs(),
549-
QgisApp::instance()->mapCanvas()->mapSettings().destinationCrs() );
549+
QgisApp::instance()->mapCanvas()->mapSettings().destinationCrs(), QgsProject::instance() );
550550
currentMapExtent = xForm.transformBoundingBox( currentMapExtent );
551551
}
552552
catch ( QgsCsException & )

src/app/gps/qgsgpsinformationwidget.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -684,7 +684,7 @@ void QgsGPSInformationWidget::displayGPSInformation( const QgsGPSInformation &in
684684
if ( radRecenterMap->isChecked() || radRecenterWhenNeeded->isChecked() )
685685
{
686686
QgsCoordinateReferenceSystem mypSRS = mpCanvas->mapSettings().destinationCrs();
687-
QgsCoordinateTransform myTransform( mWgs84CRS, mypSRS ); // use existing WGS84 CRS
687+
QgsCoordinateTransform myTransform( mWgs84CRS, mypSRS, QgsProject::instance() ); // use existing WGS84 CRS
688688

689689
QgsPointXY myPoint = myTransform.transform( myNewCenter );
690690
//keep the extent the same just center the map canvas in the display so our feature is in the middle
@@ -758,7 +758,7 @@ void QgsGPSInformationWidget::addVertex()
758758
QgsPointXY myPoint;
759759
if ( mpCanvas )
760760
{
761-
QgsCoordinateTransform t( mWgs84CRS, mpCanvas->mapSettings().destinationCrs() );
761+
QgsCoordinateTransform t( mWgs84CRS, mpCanvas->mapSettings().destinationCrs(), QgsProject::instance() );
762762
myPoint = t.transform( mLastGpsPosition );
763763
}
764764
else
@@ -809,7 +809,7 @@ void QgsGPSInformationWidget::mBtnCloseFeature_clicked()
809809
{
810810
QgsFeature *f = new QgsFeature( 0 );
811811

812-
QgsCoordinateTransform t( mWgs84CRS, vlayer->crs() );
812+
QgsCoordinateTransform t( mWgs84CRS, vlayer->crs(), QgsProject::instance() );
813813
QgsPointXY myPoint = t.transform( mLastGpsPosition );
814814
double x = myPoint.x();
815815
double y = myPoint.y();
@@ -864,7 +864,7 @@ void QgsGPSInformationWidget::mBtnCloseFeature_clicked()
864864
{
865865
QgsPointXY savePoint = *it;
866866
// transform the gps point into the layer crs
867-
QgsCoordinateTransform t( mWgs84CRS, vlayer->crs() );
867+
QgsCoordinateTransform t( mWgs84CRS, vlayer->crs(), QgsProject::instance() );
868868
QgsPointXY myPoint = t.transform( savePoint );
869869

870870
wkbPtr << myPoint.x() << myPoint.y();
@@ -887,7 +887,7 @@ void QgsGPSInformationWidget::mBtnCloseFeature_clicked()
887887
{
888888
QgsPointXY savePoint = *it;
889889
// transform the gps point into the layer crs
890-
QgsCoordinateTransform t( mWgs84CRS, vlayer->crs() );
890+
QgsCoordinateTransform t( mWgs84CRS, vlayer->crs(), QgsProject::instance() );
891891
QgsPointXY myPoint = t.transform( savePoint );
892892
wkbPtr << myPoint.x() << myPoint.y();
893893
}

src/app/gps/qgsgpsmarker.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "qgscoordinatetransform.h"
2020
#include "qgsmapcanvas.h"
2121
#include "qgsexception.h"
22+
#include "qgsproject.h"
2223

2324
QgsGpsMarker::QgsGpsMarker( QgsMapCanvas *mapCanvas )
2425
: QgsMapCanvasItem( mapCanvas )
@@ -42,7 +43,7 @@ void QgsGpsMarker::setCenter( const QgsPointXY &point )
4243
//transform to map crs
4344
if ( mMapCanvas )
4445
{
45-
QgsCoordinateTransform t( mWgs84CRS, mMapCanvas->mapSettings().destinationCrs() );
46+
QgsCoordinateTransform t( mWgs84CRS, mMapCanvas->mapSettings().destinationCrs(), QgsProject::instance() );
4647
try
4748
{
4849
mCenter = t.transform( point );

src/app/nodetool/qgsnodeeditor.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "qgsvertexentry.h"
2323
#include "qgsvectorlayer.h"
2424
#include "qgsgeometryutils.h"
25+
#include "qgsproject.h"
2526

2627
#include <QTableWidget>
2728
#include <QHeaderView>
@@ -366,7 +367,7 @@ void QgsNodeEditor::zoomToNode( int idx )
366367
double y = mSelectedFeature->vertexMap().at( idx )->point().y();
367368
QgsPointXY newCenter( x, y );
368369

369-
QgsCoordinateTransform t( mLayer->crs(), mCanvas->mapSettings().destinationCrs() );
370+
QgsCoordinateTransform t( mLayer->crs(), mCanvas->mapSettings().destinationCrs(), QgsProject::instance() );
370371
QgsPointXY tCenter = t.transform( newCenter );
371372

372373
QPolygonF ext = mCanvas->mapSettings().visiblePolygon();

src/app/qgisapp.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5759,7 +5759,7 @@ void QgisApp::dxfExport()
57595759
//extent
57605760
if ( d.exportMapExtent() )
57615761
{
5762-
QgsCoordinateTransform t( mapCanvas()->mapSettings().destinationCrs(), d.crs() );
5762+
QgsCoordinateTransform t( mapCanvas()->mapSettings().destinationCrs(), d.crs(), QgsProject::instance() );
57635763
dxfExport.setExtent( t.transformBoundingBox( mapCanvas()->extent() ) );
57645764
}
57655765
}
@@ -7019,7 +7019,7 @@ void QgisApp::saveAsVectorFileGeneral( QgsVectorLayer *vlayer, bool symbologyOpt
70197019

70207020
if ( destCRS.isValid() && destCRS != vlayer->crs() )
70217021
{
7022-
ct = QgsCoordinateTransform( vlayer->crs(), destCRS );
7022+
ct = QgsCoordinateTransform( vlayer->crs(), destCRS, QgsProject::instance() );
70237023

70247024
//ask user about datum transformation
70257025
QgsSettings settings;
@@ -9493,7 +9493,7 @@ void QgisApp::legendLayerZoomNative()
94939493
QSize s = mMapCanvas->mapSettings().outputSize();
94949494
QgsPointXY p1( e.center().x(), e.center().y() );
94959495
QgsPointXY p2( e.center().x() + e.width() / s.width(), e.center().y() + e.height() / s.height() );
9496-
QgsCoordinateTransform ct( mMapCanvas->mapSettings().destinationCrs(), layer->crs() );
9496+
QgsCoordinateTransform ct( mMapCanvas->mapSettings().destinationCrs(), layer->crs(), QgsProject::instance() );
94979497
p1 = ct.transform( p1 );
94989498
p2 = ct.transform( p2 );
94999499
double width = std::sqrt( p1.sqrDist( p2 ) ); // width (actually the diagonal) of reprojected pixel

src/app/qgsbookmarks.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ void QgsBookmarks::zoomToBookmark()
253253
authid != QgisApp::instance()->mapCanvas()->mapSettings().destinationCrs().authid() )
254254
{
255255
QgsCoordinateTransform ct( QgsCoordinateReferenceSystem::fromOgcWmsCrs( authid ),
256-
QgisApp::instance()->mapCanvas()->mapSettings().destinationCrs() );
256+
QgisApp::instance()->mapCanvas()->mapSettings().destinationCrs(), QgsProject::instance() );
257257
rect = ct.transform( rect );
258258
if ( rect.isEmpty() )
259259
{

src/app/qgsclipboard.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#include "qgssettings.h"
3939
#include "qgisapp.h"
4040
#include "qgsmapcanvas.h"
41+
#include "qgsproject.h"
4142

4243
QgsClipboard::QgsClipboard()
4344
{
@@ -277,7 +278,7 @@ QgsFeatureList QgsClipboard::transformedCopyOf( const QgsCoordinateReferenceSyst
277278
}
278279
else
279280
{
280-
ct = QgsCoordinateTransform( crs(), destCRS );
281+
ct = QgsCoordinateTransform( crs(), destCRS, QgsProject::instance() );
281282
}
282283

283284
QgsDebugMsg( "transforming clipboard." );

src/app/qgsdecorationlayoutextent.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ void QgsDecorationLayoutExtent::render( const QgsMapSettings &mapSettings, QgsRe
139139
{
140140
// reproject extent
141141
QgsCoordinateTransform ct( map->crs(),
142-
mapSettings.destinationCrs() );
142+
mapSettings.destinationCrs(), QgsProject::instance() );
143143
g = g.densifyByCount( 20 );
144144
try
145145
{

src/app/qgsmapcanvasdockwidget.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ void QgsMapCanvasDockWidget::syncViewCenter( QgsMapCanvas *sourceCanvas )
322322

323323
// reproject extent
324324
QgsCoordinateTransform ct( sourceCanvas->mapSettings().destinationCrs(),
325-
destCanvas->mapSettings().destinationCrs() );
325+
destCanvas->mapSettings().destinationCrs(), QgsProject::instance() );
326326
try
327327
{
328328
destCanvas->setCenter( ct.transform( sourceCanvas->center() ) );
@@ -412,7 +412,7 @@ void QgsMapCanvasDockWidget::syncMarker( const QgsPointXY &p )
412412

413413
// reproject point
414414
QgsCoordinateTransform ct( mMainCanvas->mapSettings().destinationCrs(),
415-
mMapCanvas->mapSettings().destinationCrs() );
415+
mMapCanvas->mapSettings().destinationCrs(), QgsProject::instance() );
416416
QgsPointXY t = p;
417417
try
418418
{
@@ -450,7 +450,7 @@ void QgsMapCanvasDockWidget::updateExtentRect()
450450
{
451451
// reproject extent
452452
QgsCoordinateTransform ct( mMainCanvas->mapSettings().destinationCrs(),
453-
mMapCanvas->mapSettings().destinationCrs() );
453+
mMapCanvas->mapSettings().destinationCrs(), QgsProject::instance() );
454454
g = g.densifyByCount( 5 );
455455
try
456456
{

src/app/qgsmaptoolannotation.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ QgsPointXY QgsMapToolAnnotation::transformCanvasToAnnotation( QgsPointXY p, QgsA
359359
{
360360
if ( annotation->mapPositionCrs() != mCanvas->mapSettings().destinationCrs() )
361361
{
362-
QgsCoordinateTransform transform( mCanvas->mapSettings().destinationCrs(), annotation->mapPositionCrs() );
362+
QgsCoordinateTransform transform( mCanvas->mapSettings().destinationCrs(), annotation->mapPositionCrs(), QgsProject::instance() );
363363
try
364364
{
365365
p = transform.transform( p );

src/app/qgsmaptoolselectutils.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ email : jpalmer at linz dot govt dot nz
2828
#include "qgsexception.h"
2929
#include "qgslogger.h"
3030
#include "qgis.h"
31+
#include "qgsproject.h"
3132

3233
#include <QMouseEvent>
3334
#include <QApplication>
@@ -176,7 +177,7 @@ QgsFeatureIds QgsMapToolSelectUtils::getMatchingFeatures( QgsMapCanvas *canvas,
176177

177178
try
178179
{
179-
QgsCoordinateTransform ct( canvas->mapSettings().destinationCrs(), vlayer->crs() );
180+
QgsCoordinateTransform ct( canvas->mapSettings().destinationCrs(), vlayer->crs(), QgsProject::instance() );
180181

181182
if ( !ct.isShortCircuited() && selectGeomTrans.type() == QgsWkbTypes::PolygonGeometry )
182183
{

src/app/qgsmaptoolshowhidelabels.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ bool QgsMapToolShowHideLabels::selectedFeatures( QgsVectorLayer *vlayer,
199199

200200
try
201201
{
202-
QgsCoordinateTransform ct( mCanvas->mapSettings().destinationCrs(), vlayer->crs() );
202+
QgsCoordinateTransform ct( mCanvas->mapSettings().destinationCrs(), vlayer->crs(), QgsProject::instance() );
203203
selectGeomTrans.transform( ct );
204204
}
205205
catch ( QgsCsException &cse )

src/app/qgsmeasuretool.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "qgsmeasuretool.h"
2727
#include "qgsmessagelog.h"
2828
#include "qgssettings.h"
29+
#include "qgsproject.h"
2930

3031
#include <QMessageBox>
3132
#include <QMouseEvent>
@@ -133,7 +134,7 @@ void QgsMeasureTool::updateSettings()
133134

134135
mDialog->restart();
135136
mDone = lastDone;
136-
QgsCoordinateTransform ct( mDestinationCrs, mCanvas->mapSettings().destinationCrs() );
137+
QgsCoordinateTransform ct( mDestinationCrs, mCanvas->mapSettings().destinationCrs(), QgsProject::instance() );
137138

138139
Q_FOREACH ( const QgsPointXY &previousPoint, points )
139140
{

src/app/qgsprojectproperties.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas *mapCanvas, QWidget *pa
163163
{
164164
// reproject extent
165165
QgsCoordinateTransform ct( QgsProject::instance()->crs(),
166-
QgsCoordinateReferenceSystem::fromEpsgId( 4326 ) );
166+
QgsCoordinateReferenceSystem::fromEpsgId( 4326 ), QgsProject::instance() );
167167

168168
g = g.densifyByCount( 5 );
169169
try

src/core/composer/qgscomposerattributetablev2.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ bool QgsComposerAttributeTableV2::getTableContents( QgsComposerTableContents &co
413413
if ( layer )
414414
{
415415
//transform back to layer CRS
416-
QgsCoordinateTransform coordTransform( layer->crs(), mComposerMap->crs() );
416+
QgsCoordinateTransform coordTransform( layer->crs(), mComposerMap->crs(), mComposition->project() );
417417
try
418418
{
419419
selectionRect = coordTransform.transformBoundingBox( selectionRect, QgsCoordinateTransform::ReverseTransform );

src/core/composer/qgscomposermap.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1890,7 +1890,7 @@ QPointF QgsComposerMap::composerMapPosForItem( const QgsAnnotation *annotation )
18901890
if ( annotationCrs != crs() )
18911891
{
18921892
//need to reproject
1893-
QgsCoordinateTransform t( annotationCrs, crs() );
1893+
QgsCoordinateTransform t( annotationCrs, crs(), mComposition->project() );
18941894
double z = 0.0;
18951895
t.transformInPlace( mapX, mapY, z );
18961896
}

0 commit comments

Comments
 (0)