Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Allow the usage of opacity parameter in a WMS provider URL
- Loading branch information
|
@@ -138,6 +138,27 @@ bool QgsWmsSettings::parseUri( const QString &uriString ) |
|
|
mActiveSubStyles = uri.params( QStringLiteral( "styles" ) ); |
|
|
QgsDebugMsgLevel( "Entering: layers:" + mActiveSubLayers.join( ", " ) + ", styles:" + mActiveSubStyles.join( ", " ), 2 ); |
|
|
|
|
|
//opacities |
|
|
if ( uri.hasParam( QStringLiteral( "opacities" ) ) ) |
|
|
{ |
|
|
mOpacities.clear(); |
|
|
QStringList opacities = uri.params( QStringLiteral( "opacities" ) ); |
|
|
QStringList::const_iterator oIt = opacities.constBegin(); |
|
|
for ( ; oIt != opacities.constEnd(); ++oIt ) |
|
|
{ |
|
|
bool ok = false; |
|
|
oIt->toInt( &ok ); |
|
|
if ( ok ) |
|
|
{ |
|
|
mOpacities.append( *oIt ); |
|
|
} |
|
|
else |
|
|
{ |
|
|
mOpacities.append( QStringLiteral( "255" ) ); |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
mImageMimeType = uri.param( QStringLiteral( "format" ) ); |
|
|
QgsDebugMsgLevel( "Setting image encoding to " + mImageMimeType + '.', 2 ); |
|
|
|
|
|
|
@@ -933,6 +933,8 @@ class QgsWmsSettings |
|
|
QStringList mActiveSubLayers; |
|
|
QStringList mActiveSubStyles; |
|
|
|
|
|
QStringList mOpacities; |
|
|
|
|
|
/** |
|
|
* Visibility status of the given active sublayer |
|
|
*/ |
|
|
|
@@ -1069,6 +1069,11 @@ QUrl QgsWmsProvider::createRequestUrlWMS( const QgsRectangle &viewExtent, int pi |
|
|
setQueryItem( query, QStringLiteral( "HEIGHT" ), QString::number( pixelHeight ) ); |
|
|
setQueryItem( query, QStringLiteral( "LAYERS" ), layers ); |
|
|
setQueryItem( query, QStringLiteral( "STYLES" ), styles ); |
|
|
QStringList opacityList = mSettings.mOpacities; |
|
|
if ( !opacityList.isEmpty() ) |
|
|
{ |
|
|
setQueryItem( query, QStringLiteral( "OPACITIES" ), mSettings.mOpacities.join( ',' ) ); |
|
|
} |
|
|
|
|
|
// For WMS-T layers |
|
|
if ( temporalCapabilities() && |
|
|
|
@@ -1891,7 +1891,7 @@ namespace QgsWms |
|
|
for ( ; paramIt != paramMap.constEnd(); ++paramIt ) |
|
|
{ |
|
|
QString paramName = paramIt.key().toLower(); |
|
|
if ( paramName == QLatin1String( "layers" ) || paramName == QLatin1String( "styles" ) ) |
|
|
if ( paramName == QLatin1String( "layers" ) || paramName == QLatin1String( "styles" ) || paramName == QLatin1String( "opacities" ) ) |
|
|
{ |
|
|
const QStringList values = paramIt.value().split( ',' ); |
|
|
for ( const QString &value : values ) |
|
|