mirror of
https://github.com/qgis/QGIS.git
synced 2025-11-13 00:07:27 -05:00
Publish layer titles and abstracts in WMS capabilities
This commit is contained in:
parent
3f7def9814
commit
bea1a4667a
@ -363,6 +363,8 @@ void QgsConfigParser::appendCRSElementsToLayer( QDomElement& layerElement, QDomD
|
||||
|
||||
//insert the CRS elements after the title element to be in accordance with the WMS 1.3 specification
|
||||
QDomElement titleElement = layerElement.firstChildElement( "Title" );
|
||||
QDomElement abstractElement = layerElement.firstChildElement( "Abstract" );
|
||||
QDomElement CRSPrecedingElement = abstractElement.isNull() ? titleElement : abstractElement; //last element before the CRS elements
|
||||
|
||||
//In case the number of advertised CRS is constrained
|
||||
QStringList constrainedCrsList = supportedOutputCrsList();
|
||||
@ -370,37 +372,25 @@ void QgsConfigParser::appendCRSElementsToLayer( QDomElement& layerElement, QDomD
|
||||
{
|
||||
for ( int i = constrainedCrsList.size() - 1; i >= 0; --i )
|
||||
{
|
||||
appendCRSElementToLayer( layerElement, titleElement, constrainedCrsList.at( i ), doc );
|
||||
#if 0
|
||||
QDomElement crsElement = doc.createElement( "CRS" );
|
||||
QDomText crsText = doc.createTextNode( constrainedCrsList.at( i ) );
|
||||
crsElement.appendChild( crsText );
|
||||
layerElement.insertAfter( crsElement, titleElement );
|
||||
#endif
|
||||
appendCRSElementToLayer( layerElement, CRSPrecedingElement, constrainedCrsList.at( i ), doc );
|
||||
}
|
||||
}
|
||||
else //no crs constraint
|
||||
{
|
||||
foreach( QString crs, crsList )
|
||||
{
|
||||
appendCRSElementToLayer( layerElement, titleElement, crs, doc );
|
||||
#if 0
|
||||
QDomElement crsElement = doc.createElement( "CRS" );
|
||||
QDomText crsText = doc.createTextNode( *crsIt );
|
||||
crsElement.appendChild( crsText );
|
||||
layerElement.insertAfter( crsElement, titleElement );
|
||||
#endif
|
||||
appendCRSElementToLayer( layerElement, CRSPrecedingElement, crs, doc );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void QgsConfigParser::appendCRSElementToLayer( QDomElement& layerElement, const QDomElement& titleElement, const QString& crsText, QDomDocument& doc ) const
|
||||
void QgsConfigParser::appendCRSElementToLayer( QDomElement& layerElement, const QDomElement& precedingElement, const QString& crsText, QDomDocument& doc ) const
|
||||
{
|
||||
QString version = doc.documentElement().attribute( "version" );
|
||||
QDomElement crsElement = doc.createElement( version == "1.1.1" ? "SRS" : "CRS" );
|
||||
QDomText crsTextNode = doc.createTextNode( crsText );
|
||||
crsElement.appendChild( crsTextNode );
|
||||
layerElement.insertAfter( crsElement, titleElement );
|
||||
layerElement.insertAfter( crsElement, precedingElement );
|
||||
}
|
||||
|
||||
QgsComposition* QgsConfigParser::createPrintComposition( const QString& composerTemplate, QgsMapRenderer* mapRenderer, const QMap< QString, QString >& parameterMap ) const
|
||||
|
||||
@ -170,7 +170,7 @@ class QgsConfigParser
|
||||
@return true in case of success*/
|
||||
bool crsSetForLayer( const QDomElement& layerElement, QSet<QString> &crsSet ) const;
|
||||
void appendCRSElementsToLayer( QDomElement& layerElement, QDomDocument& doc, const QStringList &crsList ) const;
|
||||
void appendCRSElementToLayer( QDomElement& layerElement, const QDomElement& titleElement, const QString& crsText, QDomDocument& doc ) const;
|
||||
void appendCRSElementToLayer( QDomElement& layerElement, const QDomElement& precedingElement, const QString& crsText, QDomDocument& doc ) const;
|
||||
|
||||
void setDefaultLegendSettings();
|
||||
};
|
||||
|
||||
@ -239,10 +239,24 @@ void QgsProjectParser::addLayers( QDomDocument &doc,
|
||||
layerElem.appendChild( nameElem );
|
||||
|
||||
QDomElement titleElem = doc.createElement( "Title" );
|
||||
QDomText titleText = doc.createTextNode( currentLayer->name() );
|
||||
QString titleName = currentLayer->title();
|
||||
if ( titleName.isEmpty() )
|
||||
{
|
||||
titleName = currentLayer->name();
|
||||
}
|
||||
QDomText titleText = doc.createTextNode( titleName );
|
||||
titleElem.appendChild( titleText );
|
||||
layerElem.appendChild( titleElem );
|
||||
|
||||
QString abstract = currentLayer->abstract();
|
||||
if ( !abstract.isEmpty() )
|
||||
{
|
||||
QDomElement abstractElem = doc.createElement( "Abstract" );
|
||||
QDomText abstractText = doc.createTextNode( abstract );
|
||||
abstractElem.appendChild( abstractText );
|
||||
layerElem.appendChild( abstractElem );
|
||||
}
|
||||
|
||||
//CRS
|
||||
QStringList crsList = createCRSListForLayer( currentLayer );
|
||||
appendCRSElementsToLayer( layerElem, doc, crsList );
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user