@@ -124,17 +124,13 @@ namespace QgsWms
124
124
125
125
mWmsParameters = mContext .parameters ();
126
126
mWmsParameters .dump ();
127
-
128
- initRestrictedLayers ();
129
- initNicknameLayers ();
130
127
}
131
128
132
129
QgsRenderer::~QgsRenderer ()
133
130
{
134
131
removeTemporaryLayers ();
135
132
}
136
133
137
-
138
134
QImage *QgsRenderer::getLegendGraphics ()
139
135
{
140
136
// check parameters
@@ -599,12 +595,13 @@ namespace QgsWms
599
595
QList<QgsMapLayer *> layerSet;
600
596
for ( auto layer : cMapParams.mLayers )
601
597
{
602
- if ( ! mNicknameLayers .contains ( layer.mNickname ) )
598
+ QgsMapLayer *mlayer = mContext .layer ( layer.mNickname );
599
+
600
+ if ( ! mlayer )
603
601
{
604
602
continue ;
605
603
}
606
604
607
- QgsMapLayer *mlayer = mNicknameLayers [ layer.mNickname ];
608
605
setLayerStyle ( mlayer, layer.mStyle );
609
606
layerSet << mlayer;
610
607
}
@@ -1285,12 +1282,12 @@ namespace QgsWms
1285
1282
break ;
1286
1283
}
1287
1284
}
1288
- if ( !validLayer && !mNicknameLayers . contains ( queryLayer ) && !mLayerGroups . contains ( queryLayer ) )
1285
+ if ( !validLayer && !mContext . isValidLayer ( queryLayer ) && !mContext . isValidGroup ( queryLayer ) )
1289
1286
{
1290
1287
QString msg = QObject::tr ( " Layer '%1' not found" ).arg ( queryLayer );
1291
1288
throw QgsBadRequestException ( QStringLiteral ( " LayerNotDefined" ), msg );
1292
1289
}
1293
- else if ( ( validLayer && !queryableLayer ) || ( !validLayer && mLayerGroups . contains ( queryLayer ) ) )
1290
+ else if ( ( validLayer && !queryableLayer ) || ( !validLayer && mContext . isValidGroup ( queryLayer ) ) )
1294
1291
{
1295
1292
QString msg = QObject::tr ( " Layer '%1' is not queryable" ).arg ( queryLayer );
1296
1293
throw QgsBadRequestException ( QStringLiteral ( " LayerNotQueryable" ), msg );
@@ -2422,100 +2419,6 @@ namespace QgsWms
2422
2419
return ( mapSettings.mapToLayerCoordinates ( ml, mapRectangle ) );
2423
2420
}
2424
2421
2425
-
2426
- void QgsRenderer::initRestrictedLayers ()
2427
- {
2428
- mRestrictedLayers .clear ();
2429
-
2430
- // get name of restricted layers/groups in project
2431
- QStringList restricted = QgsServerProjectUtils::wmsRestrictedLayers ( *mProject );
2432
-
2433
- // extract restricted layers from excluded groups
2434
- QStringList restrictedLayersNames;
2435
- QgsLayerTreeGroup *root = mProject ->layerTreeRoot ();
2436
-
2437
- for ( const QString &l : restricted )
2438
- {
2439
- QgsLayerTreeGroup *group = root->findGroup ( l );
2440
- if ( group )
2441
- {
2442
- QList<QgsLayerTreeLayer *> groupLayers = group->findLayers ();
2443
- for ( QgsLayerTreeLayer *treeLayer : groupLayers )
2444
- {
2445
- restrictedLayersNames.append ( treeLayer->name () );
2446
- }
2447
- }
2448
- else
2449
- {
2450
- restrictedLayersNames.append ( l );
2451
- }
2452
- }
2453
-
2454
- // build output with names, ids or short name according to the configuration
2455
- QList<QgsLayerTreeLayer *> layers = root->findLayers ();
2456
- for ( QgsLayerTreeLayer *layer : layers )
2457
- {
2458
- if ( restrictedLayersNames.contains ( layer->name () ) )
2459
- {
2460
- mRestrictedLayers .append ( mContext .layerNickname ( *layer->layer () ) );
2461
- }
2462
- }
2463
- }
2464
-
2465
- void QgsRenderer::initNicknameLayers ()
2466
- {
2467
- for ( QgsMapLayer *ml : mProject ->mapLayers () )
2468
- {
2469
- mNicknameLayers [ mContext .layerNickname ( *ml ) ] = ml;
2470
- }
2471
-
2472
- // init groups
2473
- const QString rootName { QgsServerProjectUtils::wmsRootName ( *mProject ) };
2474
- const QgsLayerTreeGroup *root = mProject ->layerTreeRoot ();
2475
- initLayerGroupsRecursive ( root, rootName.isEmpty () ? mProject ->title () : rootName );
2476
- }
2477
-
2478
- void QgsRenderer::initLayerGroupsRecursive ( const QgsLayerTreeGroup *group, const QString &groupName )
2479
- {
2480
- if ( !groupName.isEmpty () )
2481
- {
2482
- mLayerGroups [groupName] = QList<QgsMapLayer *>();
2483
- for ( QgsLayerTreeLayer *layer : group->findLayers () )
2484
- {
2485
- mLayerGroups [groupName].append ( layer->layer () );
2486
- }
2487
- }
2488
-
2489
- for ( const QgsLayerTreeNode *child : group->children () )
2490
- {
2491
- if ( child->nodeType () == QgsLayerTreeNode::NodeGroup )
2492
- {
2493
- QString name = child->customProperty ( QStringLiteral ( " wmsShortName" ) ).toString ();
2494
-
2495
- if ( name.isEmpty () )
2496
- name = child->name ();
2497
-
2498
- initLayerGroupsRecursive ( static_cast <const QgsLayerTreeGroup *>( child ), name );
2499
-
2500
- }
2501
- }
2502
- }
2503
-
2504
- /* QString QgsRenderer::layerNickname( const QgsMapLayer &layer ) const
2505
- {
2506
- QString name = layer.shortName();
2507
- if ( QgsServerProjectUtils::wmsUseLayerIds( *mProject ) )
2508
- {
2509
- name = layer.id();
2510
- }
2511
- else if ( name.isEmpty() )
2512
- {
2513
- name = layer.name();
2514
- }
2515
-
2516
- return name;
2517
- }*/
2518
-
2519
2422
QList<QgsMapLayer *> QgsRenderer::highlightLayers ( QList<QgsWmsParametersHighlightLayer> params )
2520
2423
{
2521
2424
QList<QgsMapLayer *> highlightLayers;
0 commit comments