@@ -418,26 +418,33 @@ void QgsServerProjectParser::serviceCapabilities( QDomElement& parentElement, QD
418
418
419
419
// keyword list
420
420
QDomElement keywordListElem = propertiesElement.firstChildElement ( " WMSKeywordList" );
421
+ QDomElement wmsKeywordElem = doc.createElement ( " KeywordList" );
422
+ // add default keyword
423
+ QDomElement keywordElem = doc.createElement ( " Keyword" );
424
+ keywordElem.setAttribute ( " vocabulary" , " ISO" );
425
+ QDomText keywordText = doc.createTextNode ( " infoMapAccessService" );
426
+ if ( service.compare ( " WFS" , Qt::CaseInsensitive ) == 0 )
427
+ keywordText = doc.createTextNode ( " infoFeatureAccessService" );
428
+ else if ( service.compare ( " WCS" , Qt::CaseInsensitive ) == 0 )
429
+ keywordText = doc.createTextNode ( " infoCoverageAccessService" );
430
+ keywordElem.appendChild ( keywordText );
431
+ wmsKeywordElem.appendChild ( keywordElem );
432
+ serviceElem.appendChild ( wmsKeywordElem );
433
+ // add config keywords
421
434
if ( !keywordListElem.isNull () && !keywordListElem.text ().isEmpty () )
422
435
{
423
- QDomElement wmsKeywordElem = doc.createElement ( " KeywordList" );
424
436
QDomNodeList keywordList = keywordListElem.elementsByTagName ( " value" );
425
437
for ( int i = 0 ; i < keywordList.size (); ++i )
426
438
{
427
- QDomElement keywordElem = doc.createElement ( " Keyword" );
428
- QDomText keywordText = doc.createTextNode ( keywordList.at ( i ).toElement ().text () );
439
+ keywordElem = doc.createElement ( " Keyword" );
440
+ keywordText = doc.createTextNode ( keywordList.at ( i ).toElement ().text () );
429
441
keywordElem.appendChild ( keywordText );
430
442
if ( sia2045 )
431
443
{
432
444
keywordElem.setAttribute ( " vocabulary" , " SIA_Geo405" );
433
445
}
434
446
wmsKeywordElem.appendChild ( keywordElem );
435
447
}
436
-
437
- if ( keywordList.size () > 0 )
438
- {
439
- serviceElem.appendChild ( wmsKeywordElem );
440
- }
441
448
}
442
449
443
450
// OnlineResource element is mandatory according to the WMS specification
@@ -511,23 +518,25 @@ void QgsServerProjectParser::serviceCapabilities( QDomElement& parentElement, QD
511
518
512
519
// Fees
513
520
QDomElement feesElem = propertiesElement.firstChildElement ( " WMSFees" );
514
- if ( !feesElem.isNull () )
521
+ QDomElement wmsFeesElem = doc.createElement ( " Fees" );
522
+ QDomText wmsFeesText = doc.createTextNode ( " conditions unknown" ); // default value if access conditions are unknown
523
+ if ( !feesElem.isNull () && feesElem.text () != " " )
515
524
{
516
- QDomElement wmsFeesElem = doc.createElement ( " Fees" );
517
- QDomText wmsFeesText = doc.createTextNode ( feesElem.text () );
518
- wmsFeesElem.appendChild ( wmsFeesText );
519
- serviceElem.appendChild ( wmsFeesElem );
525
+ wmsFeesText = doc.createTextNode ( feesElem.text () );
520
526
}
527
+ wmsFeesElem.appendChild ( wmsFeesText );
528
+ serviceElem.appendChild ( wmsFeesElem );
521
529
522
530
// AccessConstraints
523
531
QDomElement accessConstraintsElem = propertiesElement.firstChildElement ( " WMSAccessConstraints" );
524
- if ( !accessConstraintsElem.isNull () )
532
+ QDomElement wmsAccessConstraintsElem = doc.createElement ( " AccessConstraints" );
533
+ QDomText wmsAccessConstraintsText = doc.createTextNode ( " None" ); // default value if access constraints are unknown
534
+ if ( !accessConstraintsElem.isNull () && accessConstraintsElem.text () != " " )
525
535
{
526
- QDomElement wmsAccessConstraintsElem = doc.createElement ( " AccessConstraints" );
527
- QDomText wmsAccessConstraintsText = doc.createTextNode ( accessConstraintsElem.text () );
528
- wmsAccessConstraintsElem.appendChild ( wmsAccessConstraintsText );
529
- serviceElem.appendChild ( wmsAccessConstraintsElem );
536
+ wmsAccessConstraintsText = doc.createTextNode ( accessConstraintsElem.text () );
530
537
}
538
+ wmsAccessConstraintsElem.appendChild ( wmsAccessConstraintsText );
539
+ serviceElem.appendChild ( wmsAccessConstraintsElem );
531
540
532
541
// max width, max height for WMS
533
542
if ( service.compare ( " WMS" , Qt::CaseInsensitive ) == 0 )
@@ -692,7 +701,7 @@ void QgsServerProjectParser::combineExtentAndCrsOfGroupChildren( QDomElement& gr
692
701
combinedBBox = mapRect;
693
702
}
694
703
}
695
- QgsConfigParserUtils::appendLayerBoundingBoxes ( groupElem, doc, combinedBBox, groupCRS );
704
+ QgsConfigParserUtils::appendLayerBoundingBoxes ( groupElem, doc, combinedBBox, groupCRS, combinedCRSSet. toList (), supportedOutputCrsList () );
696
705
}
697
706
698
707
void QgsServerProjectParser::addLayerProjectSettings ( QDomElement& layerElem, QDomDocument& doc, QgsMapLayer* currentLayer ) const
0 commit comments