@@ -418,26 +418,33 @@ void QgsServerProjectParser::serviceCapabilities( QDomElement& parentElement, QD
418418
419419 // keyword list
420420 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
421434 if ( !keywordListElem.isNull () && !keywordListElem.text ().isEmpty () )
422435 {
423- QDomElement wmsKeywordElem = doc.createElement ( " KeywordList" );
424436 QDomNodeList keywordList = keywordListElem.elementsByTagName ( " value" );
425437 for ( int i = 0 ; i < keywordList.size (); ++i )
426438 {
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 () );
429441 keywordElem.appendChild ( keywordText );
430442 if ( sia2045 )
431443 {
432444 keywordElem.setAttribute ( " vocabulary" , " SIA_Geo405" );
433445 }
434446 wmsKeywordElem.appendChild ( keywordElem );
435447 }
436-
437- if ( keywordList.size () > 0 )
438- {
439- serviceElem.appendChild ( wmsKeywordElem );
440- }
441448 }
442449
443450 // OnlineResource element is mandatory according to the WMS specification
@@ -511,23 +518,25 @@ void QgsServerProjectParser::serviceCapabilities( QDomElement& parentElement, QD
511518
512519 // Fees
513520 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 () != " " )
515524 {
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 () );
520526 }
527+ wmsFeesElem.appendChild ( wmsFeesText );
528+ serviceElem.appendChild ( wmsFeesElem );
521529
522530 // AccessConstraints
523531 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 () != " " )
525535 {
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 () );
530537 }
538+ wmsAccessConstraintsElem.appendChild ( wmsAccessConstraintsText );
539+ serviceElem.appendChild ( wmsAccessConstraintsElem );
531540
532541 // max width, max height for WMS
533542 if ( service.compare ( " WMS" , Qt::CaseInsensitive ) == 0 )
@@ -692,7 +701,7 @@ void QgsServerProjectParser::combineExtentAndCrsOfGroupChildren( QDomElement& gr
692701 combinedBBox = mapRect;
693702 }
694703 }
695- QgsConfigParserUtils::appendLayerBoundingBoxes ( groupElem, doc, combinedBBox, groupCRS );
704+ QgsConfigParserUtils::appendLayerBoundingBoxes ( groupElem, doc, combinedBBox, groupCRS, combinedCRSSet. toList (), supportedOutputCrsList () );
696705}
697706
698707void QgsServerProjectParser::addLayerProjectSettings ( QDomElement& layerElem, QDomDocument& doc, QgsMapLayer* currentLayer ) const
0 commit comments