@@ -84,6 +84,7 @@ namespace QgsWms
84
84
const QgsLayerTreeGroup *layerTreeGroup,
85
85
bool projectSettings );
86
86
87
+ void addKeywordListElement ( const QgsProject *project, QDomDocument &doc, QDomElement &parent );
87
88
}
88
89
89
90
void writeGetCapabilities ( QgsServerInterface *serverIface, const QgsProject *project,
@@ -225,8 +226,6 @@ namespace QgsWms
225
226
QDomElement getServiceElement ( QDomDocument &doc, const QgsProject *project, const QString &version,
226
227
const QgsServerRequest &request )
227
228
{
228
- bool sia2045 = QgsServerProjectUtils::wmsInfoFormatSia2045 ( *project );
229
-
230
229
// Service element
231
230
QDomElement serviceElem = doc.createElement ( QStringLiteral ( " Service" ) );
232
231
@@ -254,34 +253,7 @@ namespace QgsWms
254
253
serviceElem.appendChild ( abstractElem );
255
254
}
256
255
257
- QDomElement keywordsElem = doc.createElement ( QStringLiteral ( " KeywordList" ) );
258
- // add default keyword
259
- QDomElement keywordElem = doc.createElement ( QStringLiteral ( " Keyword" ) );
260
- keywordElem.setAttribute ( QStringLiteral ( " vocabulary" ), QStringLiteral ( " ISO" ) );
261
- QDomText keywordText = doc.createTextNode ( QStringLiteral ( " infoMapAccessService" ) );
262
- keywordElem.appendChild ( keywordText );
263
- keywordsElem.appendChild ( keywordElem );
264
- serviceElem.appendChild ( keywordsElem );
265
- QStringList keywords = QgsServerProjectUtils::owsServiceKeywords ( *project );
266
- if ( !keywords.isEmpty () )
267
- {
268
- for ( int i = 0 ; i < keywords.size (); ++i )
269
- {
270
- QString keyword = keywords.at ( i );
271
- if ( !keyword.isEmpty () )
272
- {
273
- keywordElem = doc.createElement ( QStringLiteral ( " Keyword" ) );
274
- keywordText = doc.createTextNode ( keyword );
275
- keywordElem.appendChild ( keywordText );
276
- if ( sia2045 )
277
- {
278
- keywordElem.setAttribute ( QStringLiteral ( " vocabulary" ), QStringLiteral ( " SIA_Geo405" ) );
279
- }
280
- keywordsElem.appendChild ( keywordElem );
281
- }
282
- }
283
- serviceElem.appendChild ( keywordsElem );
284
- }
256
+ addKeywordListElement ( project, doc, serviceElem );
285
257
286
258
QString onlineResource = QgsServerProjectUtils::owsServiceOnlineResource ( *project );
287
259
if ( onlineResource.isEmpty () )
@@ -782,6 +754,28 @@ namespace QgsWms
782
754
layerParentAbstElem.appendChild ( layerParentAbstText );
783
755
layerParentElem.appendChild ( layerParentAbstElem );
784
756
757
+ // Root Layer name
758
+ QDomElement layerParentNameElem = doc.createElement ( QStringLiteral ( " Name" ) );
759
+ QString rootName = QgsServerProjectUtils::wmsRootName ( *project );
760
+ if ( rootName.isEmpty () )
761
+ {
762
+ QDomText layerParentNameText = doc.createTextNode ( project->title () );
763
+ layerParentNameElem.appendChild ( layerParentNameText );
764
+ }
765
+ else
766
+ {
767
+ QDomText layerParentNameText = doc.createTextNode ( rootName );
768
+ layerParentNameElem.appendChild ( layerParentNameText );
769
+ }
770
+ layerParentElem.appendChild ( layerParentNameElem );
771
+
772
+ // Keyword list
773
+ addKeywordListElement ( project, doc, layerParentElem );
774
+
775
+ // Metadata (empty but needed for OGC tests RECOMMENDATIONS)
776
+ QDomElement metaUrlElem = doc.createElement ( QStringLiteral ( " MetadataURL" ) );
777
+ layerParentElem.appendChild ( metaUrlElem );
778
+
785
779
// Root Layer tree name
786
780
if ( projectSettings )
787
781
{
@@ -1725,6 +1719,40 @@ namespace QgsWms
1725
1719
}
1726
1720
}
1727
1721
1722
+ void addKeywordListElement ( const QgsProject *project, QDomDocument &doc, QDomElement &parent )
1723
+ {
1724
+ bool sia2045 = QgsServerProjectUtils::wmsInfoFormatSia2045 ( *project );
1725
+
1726
+ QDomElement keywordsElem = doc.createElement ( QStringLiteral ( " KeywordList" ) );
1727
+ // add default keyword
1728
+ QDomElement keywordElem = doc.createElement ( QStringLiteral ( " Keyword" ) );
1729
+ keywordElem.setAttribute ( QStringLiteral ( " vocabulary" ), QStringLiteral ( " ISO" ) );
1730
+ QDomText keywordText = doc.createTextNode ( QStringLiteral ( " infoMapAccessService" ) );
1731
+ keywordElem.appendChild ( keywordText );
1732
+ keywordsElem.appendChild ( keywordElem );
1733
+ parent.appendChild ( keywordsElem );
1734
+ QStringList keywords = QgsServerProjectUtils::owsServiceKeywords ( *project );
1735
+ if ( !keywords.isEmpty () )
1736
+ {
1737
+ for ( int i = 0 ; i < keywords.size (); ++i )
1738
+ {
1739
+ QString keyword = keywords.at ( i );
1740
+ if ( !keyword.isEmpty () )
1741
+ {
1742
+ keywordElem = doc.createElement ( QStringLiteral ( " Keyword" ) );
1743
+ keywordText = doc.createTextNode ( keyword );
1744
+ keywordElem.appendChild ( keywordText );
1745
+ if ( sia2045 )
1746
+ {
1747
+ keywordElem.setAttribute ( QStringLiteral ( " vocabulary" ), QStringLiteral ( " SIA_Geo405" ) );
1748
+ }
1749
+ keywordsElem.appendChild ( keywordElem );
1750
+ }
1751
+ }
1752
+
1753
+ parent.appendChild ( keywordsElem );
1754
+ }
1755
+ }
1728
1756
}
1729
1757
1730
1758
0 commit comments