@@ -52,6 +52,10 @@ QgsCoordinateTransform::QgsCoordinateTransform()
52
52
QgsCoordinateTransform::QgsCoordinateTransform ( const QgsCoordinateReferenceSystem &source, const QgsCoordinateReferenceSystem &destination )
53
53
{
54
54
d = new QgsCoordinateTransformPrivate ( source, destination, QgsCoordinateTransformContext () );
55
+
56
+ if ( !d->mSourceCRS .isValid () || !d->mDestCRS .isValid () )
57
+ return ;
58
+
55
59
if ( !setFromCache ( d->mSourceCRS , d->mDestCRS , d->mSourceDatumTransform , d->mDestinationDatumTransform ) )
56
60
{
57
61
d->initialize ();
@@ -65,6 +69,10 @@ QgsCoordinateTransform::QgsCoordinateTransform( const QgsCoordinateReferenceSyst
65
69
#ifdef QGISDEBUG
66
70
d->mHasContext = true ;
67
71
#endif
72
+
73
+ if ( !d->mSourceCRS .isValid () || !d->mDestCRS .isValid () )
74
+ return ;
75
+
68
76
if ( !setFromCache ( d->mSourceCRS , d->mDestCRS , d->mSourceDatumTransform , d->mDestinationDatumTransform ) )
69
77
{
70
78
d->initialize ();
@@ -78,6 +86,10 @@ QgsCoordinateTransform::QgsCoordinateTransform( const QgsCoordinateReferenceSyst
78
86
#ifdef QGISDEBUG
79
87
d->mHasContext = true ;
80
88
#endif
89
+
90
+ if ( !d->mSourceCRS .isValid () || !d->mDestCRS .isValid () )
91
+ return ;
92
+
81
93
if ( !setFromCache ( d->mSourceCRS , d->mDestCRS , d->mSourceDatumTransform , d->mDestinationDatumTransform ) )
82
94
{
83
95
d->initialize ();
@@ -91,6 +103,10 @@ QgsCoordinateTransform::QgsCoordinateTransform( const QgsCoordinateReferenceSyst
91
103
#ifdef QGISDEBUG
92
104
d->mHasContext = true ; // not strictly true, but we don't need to worry if datums have been explicitly set
93
105
#endif
106
+
107
+ if ( !d->mSourceCRS .isValid () || !d->mDestCRS .isValid () )
108
+ return ;
109
+
94
110
if ( !setFromCache ( d->mSourceCRS , d->mDestCRS , d->mSourceDatumTransform , d->mDestinationDatumTransform ) )
95
111
{
96
112
d->initialize ();
@@ -115,6 +131,9 @@ void QgsCoordinateTransform::setSourceCrs( const QgsCoordinateReferenceSystem &c
115
131
{
116
132
d.detach ();
117
133
d->mSourceCRS = crs;
134
+ if ( !d->mSourceCRS .isValid () || !d->mDestCRS .isValid () )
135
+ return ;
136
+
118
137
d->calculateTransforms ();
119
138
if ( !setFromCache ( d->mSourceCRS , d->mDestCRS , d->mSourceDatumTransform , d->mDestinationDatumTransform ) )
120
139
{
@@ -126,6 +145,9 @@ void QgsCoordinateTransform::setDestinationCrs( const QgsCoordinateReferenceSyst
126
145
{
127
146
d.detach ();
128
147
d->mDestCRS = crs;
148
+ if ( !d->mSourceCRS .isValid () || !d->mDestCRS .isValid () )
149
+ return ;
150
+
129
151
d->calculateTransforms ();
130
152
if ( !setFromCache ( d->mSourceCRS , d->mDestCRS , d->mSourceDatumTransform , d->mDestinationDatumTransform ) )
131
153
{
@@ -141,6 +163,9 @@ void QgsCoordinateTransform::setContext( const QgsCoordinateTransformContext &co
141
163
#ifdef QGISDEBUG
142
164
d->mHasContext = true ;
143
165
#endif
166
+ if ( !d->mSourceCRS .isValid () || !d->mDestCRS .isValid () )
167
+ return ;
168
+
144
169
d->calculateTransforms ();
145
170
if ( !setFromCache ( d->mSourceCRS , d->mDestCRS , d->mSourceDatumTransform , d->mDestinationDatumTransform ) )
146
171
{
0 commit comments