Skip to content

Commit 6a68309

Browse files
committed
WMS server: use shortName of group GetMap and check if the layer is queryable (or not for group, GetFeaureInfo)
1 parent 8060736 commit 6a68309

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

src/server/services/wms/qgswmsrenderer.cpp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1241,11 +1241,13 @@ namespace QgsWms
12411241
Q_FOREACH ( QString queryLayer, queryLayers )
12421242
{
12431243
bool validLayer = false;
1244+
bool queryableLayer = false;
12441245
Q_FOREACH ( QgsMapLayer *layer, layers )
12451246
{
12461247
if ( queryLayer == layerNickname( *layer ) )
12471248
{
12481249
validLayer = true;
1250+
queryableLayer = !mProject->nonIdentifiableLayers().contains( layer->id() );
12491251

12501252
QDomElement layerElement;
12511253
if ( infoFormat == QgsWmsParameters::Format::GML )
@@ -1308,8 +1310,12 @@ namespace QgsWms
13081310
break;
13091311
}
13101312
}
1311-
1312-
if ( !validLayer && !mNicknameLayers.contains( queryLayer ) )
1313+
if ( !queryableLayer )
1314+
{
1315+
QString msg = QObject::tr( "Layer '%1' is not queryable" ).arg( queryLayer );
1316+
throw QgsBadRequestException( QStringLiteral( "LayerNotQueryable" ), msg );
1317+
}
1318+
else if ( !validLayer && !mNicknameLayers.contains( queryLayer ) )
13131319
{
13141320
QString msg = QObject::tr( "Layer '%1' not found" ).arg( queryLayer );
13151321
throw QgsBadRequestException( QStringLiteral( "LayerNotDefined" ), msg );
@@ -2416,7 +2422,12 @@ namespace QgsWms
24162422
{
24172423
if ( child->nodeType() == QgsLayerTreeNode::NodeGroup )
24182424
{
2419-
initLayerGroupsRecursive( static_cast<const QgsLayerTreeGroup *>( child ), child->name() );
2425+
QString shortName = child->customProperty( QStringLiteral( "wmsShortName" ) ).toString();
2426+
QString name = child->name();
2427+
if ( !shortName.isEmpty() )
2428+
initLayerGroupsRecursive( static_cast<const QgsLayerTreeGroup *>( child ), shortName );
2429+
else
2430+
initLayerGroupsRecursive( static_cast<const QgsLayerTreeGroup *>( child ), name );
24202431
}
24212432
}
24222433
}

0 commit comments

Comments
 (0)