Skip to content

Commit

Permalink
[Bugfix][Server] Add TextSymbolizer to SLD provided by WMS GetStyles …
Browse files Browse the repository at this point in the history
…request
  • Loading branch information
rldhont committed Oct 25, 2019
1 parent 7f728ba commit 4d88ec9
Showing 1 changed file with 27 additions and 2 deletions.
29 changes: 27 additions & 2 deletions src/server/services/wms/qgswmsgetstyles.cpp
Expand Up @@ -29,6 +29,7 @@
#include "qgsrenderer.h"
#include "qgsvectorlayer.h"
#include "qgsmaplayerstylemanager.h"
#include "qgsvectorlayerlabeling.h"


namespace QgsWms
Expand Down Expand Up @@ -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 );
}
Expand Down

0 comments on commit 4d88ec9

Please sign in to comment.