Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit cad04f3

Browse files
committedMar 8, 2023
Fix DPI on getLegendGraphic concerning a RULE. It should not take the context settings according to the mapSettings since it NEVER has a BBOX (since of RULE)
1 parent 33ce7c3 commit cad04f3

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed
 

‎src/server/services/wms/qgswmsrenderer.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,18 @@ namespace QgsWms
209209
QgsLegendSettings settings = legendSettings();
210210
QgsLayerTreeModelLegendNode::ItemContext ctx;
211211
ctx.painter = painter.get();
212+
213+
// create context
214+
QgsRenderContext context = QgsRenderContext::fromQPainter( painter.get() );
215+
context.setScaleFactor( mContext.dotsPerMm() );
216+
const double mmPerMapUnit = 1 / QgsServerProjectUtils::wmsDefaultMapUnitsPerMm( *mProject );
217+
context.setMapToPixel( QgsMapToPixel( 1 / ( mmPerMapUnit * context.scaleFactor() ) ) );
218+
QgsDistanceArea distanceArea = QgsDistanceArea();
219+
distanceArea.setSourceCrs( QgsCoordinateReferenceSystem( mWmsParameters.crs() ), mProject->transformContext() );
220+
distanceArea.setEllipsoid( geoNone() );
221+
context.setDistanceArea( distanceArea );
222+
ctx.context = &context;
223+
212224
nodeModel.drawSymbol( settings, &ctx, size.height() / dpmm );
213225
painter->end();
214226

0 commit comments

Comments
 (0)
Please sign in to comment.