Skip to content

Commit

Permalink
Avoid proj 'object is not a concatenated operation' warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed May 20, 2020
1 parent e23a49a commit 6baa209
Showing 1 changed file with 31 additions and 13 deletions.
44 changes: 31 additions & 13 deletions src/core/qgsdatumtransform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -377,25 +377,43 @@ QgsDatumTransform::TransformDetails QgsDatumTransform::transformDetailsFromPj( P
details.grids.append( gridDetails );
}

for ( int j = 0; j < proj_concatoperation_get_step_count( pjContext, op ); ++j )
if ( proj_get_type( op ) == PJ_TYPE_CONCATENATED_OPERATION )
{
QgsProjUtils::proj_pj_unique_ptr step( proj_concatoperation_get_step( pjContext, op, j ) );
if ( step )
for ( int j = 0; j < proj_concatoperation_get_step_count( pjContext, op ); ++j )
{
SingleOperationDetails singleOpDetails;
singleOpDetails.remarks = QString( proj_get_remarks( step.get() ) );
singleOpDetails.scope = QString( proj_get_scope( step.get() ) );
singleOpDetails.authority = QString( proj_get_id_auth_name( step.get(), 0 ) );
singleOpDetails.code = QString( proj_get_id_code( step.get(), 0 ) );

const char *areaOfUseName = nullptr;
if ( proj_get_area_of_use( pjContext, step.get(), nullptr, nullptr, nullptr, nullptr, &areaOfUseName ) )
QgsProjUtils::proj_pj_unique_ptr step( proj_concatoperation_get_step( pjContext, op, j ) );
if ( step )
{
singleOpDetails.areaOfUse = QString( areaOfUseName );
SingleOperationDetails singleOpDetails;
singleOpDetails.remarks = QString( proj_get_remarks( step.get() ) );
singleOpDetails.scope = QString( proj_get_scope( step.get() ) );
singleOpDetails.authority = QString( proj_get_id_auth_name( step.get(), 0 ) );
singleOpDetails.code = QString( proj_get_id_code( step.get(), 0 ) );

const char *areaOfUseName = nullptr;
if ( proj_get_area_of_use( pjContext, step.get(), nullptr, nullptr, nullptr, nullptr, &areaOfUseName ) )
{
singleOpDetails.areaOfUse = QString( areaOfUseName );
}
details.operationDetails.append( singleOpDetails );
}
details.operationDetails.append( singleOpDetails );
}
}
else
{
SingleOperationDetails singleOpDetails;
singleOpDetails.remarks = QString( proj_get_remarks( op ) );
singleOpDetails.scope = QString( proj_get_scope( op ) );
singleOpDetails.authority = QString( proj_get_id_auth_name( op, 0 ) );
singleOpDetails.code = QString( proj_get_id_code( op, 0 ) );

const char *areaOfUseName = nullptr;
if ( proj_get_area_of_use( pjContext, op, nullptr, nullptr, nullptr, nullptr, &areaOfUseName ) )
{
singleOpDetails.areaOfUse = QString( areaOfUseName );
}
details.operationDetails.append( singleOpDetails );
}

return details;
}
Expand Down

0 comments on commit 6baa209

Please sign in to comment.