Skip to content

Commit

Permalink
Avoid some more unnecessary work
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Mar 13, 2020
1 parent 96252f3 commit 5b2f2cc
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 5b2f2cc

Please sign in to comment.