Skip to content

Commit

Permalink
Merge pull request #51472 from kadas-albireo/master
Browse files Browse the repository at this point in the history
Recursively read all sublayers in QgsAmsProvider
  • Loading branch information
manisandro committed Jan 17, 2023
2 parents 8d75889 + c3e3c45 commit 39d7f48
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions src/providers/arcgisrest/qgsamsprovider.cpp
Expand Up @@ -256,13 +256,21 @@ QgsAmsProvider::QgsAmsProvider( const QString &uri, const ProviderOptions &optio
if ( mServiceInfo.contains( QStringLiteral( "maxImageHeight" ) ) )
mMaxImageHeight = mServiceInfo.value( QStringLiteral( "maxImageHeight" ) ).toInt();

const QVariantList subLayersList = mLayerInfo.value( QStringLiteral( "subLayers" ) ).toList();
mSubLayers.reserve( subLayersList.size() );
for ( const QVariant &sublayer : subLayersList )
QVariantList layerList = mServiceInfo["layers"].toList();
std::function<void( int )> includeChildSublayers = [&]( int layerId )
{
mSubLayers.append( sublayer.toMap()[QStringLiteral( "id" )].toString() );
mSubLayerVisibilities.append( true );
}
if ( layerId < layerList.size() )
{
QVariantList subLayersList = layerList[layerId].toMap()["subLayerIds"].toList();
for ( const QVariant &sublayer : subLayersList )
{
mSubLayers.append( sublayer.toString() );
mSubLayerVisibilities.append( true );
includeChildSublayers( sublayer.toInt() );
}
}
};
includeChildSublayers( mLayerInfo[ QStringLiteral( "id" ) ].toInt() );

mTimestamp = QDateTime::currentDateTime();
mValid = true;
Expand Down

0 comments on commit 39d7f48

Please sign in to comment.