mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-04 00:30:59 -05:00
[Bugfix][Server] Add TextSymbolizer to SLD provided by WMS GetStyles request
This commit is contained in:
parent
8b0e21219d
commit
31ae029ed5
@ -29,6 +29,7 @@
|
||||
#include "qgsrenderer.h"
|
||||
#include "qgsvectorlayer.h"
|
||||
#include "qgsmaplayerstylemanager.h"
|
||||
#include "qgsvectorlayerlabeling.h"
|
||||
|
||||
|
||||
namespace QgsWms
|
||||
@ -181,11 +182,35 @@ namespace QgsWms
|
||||
if ( vlayer->isSpatial() )
|
||||
{
|
||||
QString currentStyle = vlayer->styleManager()->currentStyle();
|
||||
|
||||
QgsStringMap props;
|
||||
if ( vlayer->hasScaleBasedVisibility() )
|
||||
{
|
||||
props[ QStringLiteral( "scaleMinDenom" ) ] = QString::number( vlayer->maximumScale() );
|
||||
props[ QStringLiteral( "scaleMaxDenom" ) ] = QString::number( vlayer->minimumScale() );
|
||||
}
|
||||
|
||||
for ( const QString &styleName : vlayer->styleManager()->styles() )
|
||||
{
|
||||
vlayer->styleManager()->setCurrentStyle( styleName );
|
||||
QDomElement styleElem = vlayer->renderer()->writeSld( myDocument, styleName );
|
||||
namedLayerNode.appendChild( styleElem );
|
||||
|
||||
QDomElement userStyleElem = myDocument.createElement( QStringLiteral( "UserStyle" ) );
|
||||
|
||||
QDomElement styleNameElem = myDocument.createElement( QStringLiteral( "se:Name" ) );
|
||||
styleNameElem.appendChild( myDocument.createTextNode( styleName ) );
|
||||
|
||||
userStyleElem.appendChild( styleNameElem );
|
||||
|
||||
QDomElement featureTypeStyleElem = myDocument.createElement( QStringLiteral( "se:FeatureTypeStyle" ) );
|
||||
userStyleElem.appendChild( featureTypeStyleElem );
|
||||
|
||||
vlayer->renderer()->toSld( myDocument, featureTypeStyleElem, props );
|
||||
if ( vlayer->labelsEnabled() )
|
||||
{
|
||||
vlayer->labeling()->toSld( featureTypeStyleElem, props );
|
||||
}
|
||||
|
||||
namedLayerNode.appendChild( userStyleElem );
|
||||
}
|
||||
vlayer->styleManager()->setCurrentStyle( currentStyle );
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user