Skip to content

Commit bea1a46

Browse files
committedDec 15, 2011
Publish layer titles and abstracts in WMS capabilities
1 parent 3f7def9 commit bea1a46

File tree

3 files changed

+22
-18
lines changed

3 files changed

+22
-18
lines changed
 

‎src/mapserver/qgsconfigparser.cpp

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -363,44 +363,34 @@ void QgsConfigParser::appendCRSElementsToLayer( QDomElement& layerElement, QDomD
363363

364364
//insert the CRS elements after the title element to be in accordance with the WMS 1.3 specification
365365
QDomElement titleElement = layerElement.firstChildElement( "Title" );
366+
QDomElement abstractElement = layerElement.firstChildElement( "Abstract" );
367+
QDomElement CRSPrecedingElement = abstractElement.isNull() ? titleElement : abstractElement; //last element before the CRS elements
366368

367369
//In case the number of advertised CRS is constrained
368370
QStringList constrainedCrsList = supportedOutputCrsList();
369371
if ( constrainedCrsList.size() > 0 )
370372
{
371373
for ( int i = constrainedCrsList.size() - 1; i >= 0; --i )
372374
{
373-
appendCRSElementToLayer( layerElement, titleElement, constrainedCrsList.at( i ), doc );
374-
#if 0
375-
QDomElement crsElement = doc.createElement( "CRS" );
376-
QDomText crsText = doc.createTextNode( constrainedCrsList.at( i ) );
377-
crsElement.appendChild( crsText );
378-
layerElement.insertAfter( crsElement, titleElement );
379-
#endif
375+
appendCRSElementToLayer( layerElement, CRSPrecedingElement, constrainedCrsList.at( i ), doc );
380376
}
381377
}
382378
else //no crs constraint
383379
{
384380
foreach( QString crs, crsList )
385381
{
386-
appendCRSElementToLayer( layerElement, titleElement, crs, doc );
387-
#if 0
388-
QDomElement crsElement = doc.createElement( "CRS" );
389-
QDomText crsText = doc.createTextNode( *crsIt );
390-
crsElement.appendChild( crsText );
391-
layerElement.insertAfter( crsElement, titleElement );
392-
#endif
382+
appendCRSElementToLayer( layerElement, CRSPrecedingElement, crs, doc );
393383
}
394384
}
395385
}
396386

397-
void QgsConfigParser::appendCRSElementToLayer( QDomElement& layerElement, const QDomElement& titleElement, const QString& crsText, QDomDocument& doc ) const
387+
void QgsConfigParser::appendCRSElementToLayer( QDomElement& layerElement, const QDomElement& precedingElement, const QString& crsText, QDomDocument& doc ) const
398388
{
399389
QString version = doc.documentElement().attribute( "version" );
400390
QDomElement crsElement = doc.createElement( version == "1.1.1" ? "SRS" : "CRS" );
401391
QDomText crsTextNode = doc.createTextNode( crsText );
402392
crsElement.appendChild( crsTextNode );
403-
layerElement.insertAfter( crsElement, titleElement );
393+
layerElement.insertAfter( crsElement, precedingElement );
404394
}
405395

406396
QgsComposition* QgsConfigParser::createPrintComposition( const QString& composerTemplate, QgsMapRenderer* mapRenderer, const QMap< QString, QString >& parameterMap ) const

‎src/mapserver/qgsconfigparser.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ class QgsConfigParser
170170
@return true in case of success*/
171171
bool crsSetForLayer( const QDomElement& layerElement, QSet<QString> &crsSet ) const;
172172
void appendCRSElementsToLayer( QDomElement& layerElement, QDomDocument& doc, const QStringList &crsList ) const;
173-
void appendCRSElementToLayer( QDomElement& layerElement, const QDomElement& titleElement, const QString& crsText, QDomDocument& doc ) const;
173+
void appendCRSElementToLayer( QDomElement& layerElement, const QDomElement& precedingElement, const QString& crsText, QDomDocument& doc ) const;
174174

175175
void setDefaultLegendSettings();
176176
};

‎src/mapserver/qgsprojectparser.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,10 +239,24 @@ void QgsProjectParser::addLayers( QDomDocument &doc,
239239
layerElem.appendChild( nameElem );
240240

241241
QDomElement titleElem = doc.createElement( "Title" );
242-
QDomText titleText = doc.createTextNode( currentLayer->name() );
242+
QString titleName = currentLayer->title();
243+
if ( titleName.isEmpty() )
244+
{
245+
titleName = currentLayer->name();
246+
}
247+
QDomText titleText = doc.createTextNode( titleName );
243248
titleElem.appendChild( titleText );
244249
layerElem.appendChild( titleElem );
245250

251+
QString abstract = currentLayer->abstract();
252+
if ( !abstract.isEmpty() )
253+
{
254+
QDomElement abstractElem = doc.createElement( "Abstract" );
255+
QDomText abstractText = doc.createTextNode( abstract );
256+
abstractElem.appendChild( abstractText );
257+
layerElem.appendChild( abstractElem );
258+
}
259+
246260
//CRS
247261
QStringList crsList = createCRSListForLayer( currentLayer );
248262
appendCRSElementsToLayer( layerElem, doc, crsList );

0 commit comments

Comments
 (0)
Please sign in to comment.