Skip to content

Commit

Permalink
Avoid some more unnecessary work
Browse files Browse the repository at this point in the history
(cherry picked from commit 5b2f2cc)
(cherry picked from commit e1c2ddc)
  • Loading branch information
nyalldawson committed Mar 17, 2020
1 parent abcb9b9 commit f27215f
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 3 deletions.
15 changes: 12 additions & 3 deletions src/core/qgscoordinatetransform_p.cpp
Expand Up @@ -264,9 +264,18 @@ void QgsCoordinateTransformPrivate::calculateTransforms( const QgsCoordinateTran
{
// recalculate datum transforms from context
#if PROJ_VERSION_MAJOR >= 6
mProjCoordinateOperation = context.calculateCoordinateOperation( mSourceCRS, mDestCRS );
mShouldReverseCoordinateOperation = context.mustReverseCoordinateOperation( mSourceCRS, mDestCRS );
mAllowFallbackTransforms = context.allowFallbackTransform( mSourceCRS, mDestCRS );
if ( mSourceCRS.isValid() && mDestCRS.isValid() )
{
mProjCoordinateOperation = context.calculateCoordinateOperation( mSourceCRS, mDestCRS );
mShouldReverseCoordinateOperation = context.mustReverseCoordinateOperation( mSourceCRS, mDestCRS );
mAllowFallbackTransforms = context.allowFallbackTransform( mSourceCRS, mDestCRS );
}
else
{
mProjCoordinateOperation.clear();
mShouldReverseCoordinateOperation = false;
mAllowFallbackTransforms = false;
}
#else
Q_NOWARN_DEPRECATED_PUSH
QgsDatumTransform::TransformPair transforms = context.calculateDatumTransforms( mSourceCRS, mDestCRS );
Expand Down
9 changes: 9 additions & 0 deletions src/core/qgscoordinatetransformcontext.cpp
Expand Up @@ -191,6 +191,9 @@ QgsDatumTransform::TransformPair QgsCoordinateTransformContext::calculateDatumTr
QString QgsCoordinateTransformContext::calculateCoordinateOperation( const QgsCoordinateReferenceSystem &source, const QgsCoordinateReferenceSystem &destination ) const
{
#if PROJ_VERSION_MAJOR>=6
if ( !source.isValid() || !destination.isValid() )
return QString();

d->mLock.lockForRead();
QgsCoordinateTransformContextPrivate::OperationDetails res = d->mSourceDestDatumTransforms.value( qMakePair( source, destination ), QgsCoordinateTransformContextPrivate::OperationDetails() );
if ( res.operation.isEmpty() )
Expand All @@ -210,6 +213,9 @@ QString QgsCoordinateTransformContext::calculateCoordinateOperation( const QgsCo
bool QgsCoordinateTransformContext::allowFallbackTransform( const QgsCoordinateReferenceSystem &source, const QgsCoordinateReferenceSystem &destination ) const
{
#if PROJ_VERSION_MAJOR>=6
if ( !source.isValid() || !destination.isValid() )
return false;

d->mLock.lockForRead();
QgsCoordinateTransformContextPrivate::OperationDetails res = d->mSourceDestDatumTransforms.value( qMakePair( source, destination ), QgsCoordinateTransformContextPrivate::OperationDetails() );
if ( res.operation.isEmpty() )
Expand All @@ -229,6 +235,9 @@ bool QgsCoordinateTransformContext::allowFallbackTransform( const QgsCoordinateR
bool QgsCoordinateTransformContext::mustReverseCoordinateOperation( const QgsCoordinateReferenceSystem &source, const QgsCoordinateReferenceSystem &destination ) const
{
#if PROJ_VERSION_MAJOR>=6
if ( !source.isValid() || !destination.isValid() )
return false;

d->mLock.lockForRead();
QgsCoordinateTransformContextPrivate::OperationDetails res = d->mSourceDestDatumTransforms.value( qMakePair( source, destination ), QgsCoordinateTransformContextPrivate::OperationDetails() );
if ( !res.operation.isEmpty() )
Expand Down

0 comments on commit f27215f

Please sign in to comment.