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 e6ea26d

Browse files
committedMar 8, 2023
deduplicate duplicate code
1 parent 8de8cfb commit e6ea26d

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed
 

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

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,8 @@ namespace QgsWms
144144
}
145145
else
146146
{
147-
context.setScaleFactor( mContext.dotsPerMm() );
148-
const double mmPerMapUnit = 1 / QgsServerProjectUtils::wmsDefaultMapUnitsPerMm( *mProject );
149-
context.setMapToPixel( QgsMapToPixel( 1 / ( mmPerMapUnit * context.scaleFactor() ) ) );
150-
QgsDistanceArea distanceArea;
151-
distanceArea.setSourceCrs( QgsCoordinateReferenceSystem( mWmsParameters.crs() ), mProject->transformContext() );
152-
distanceArea.setEllipsoid( geoNone() );
153-
context.setDistanceArea( distanceArea );
147+
//use default scale settings
148+
configureDefaultRenderContext( context );
154149
}
155150

156151
// create image according to context
@@ -216,13 +211,7 @@ namespace QgsWms
216211

217212
// create context
218213
QgsRenderContext context = QgsRenderContext::fromQPainter( painter.get() );
219-
context.setScaleFactor( mContext.dotsPerMm() );
220-
const double mmPerMapUnit = 1 / QgsServerProjectUtils::wmsDefaultMapUnitsPerMm( *mProject );
221-
context.setMapToPixel( QgsMapToPixel( 1 / ( mmPerMapUnit * context.scaleFactor() ) ) );
222-
QgsDistanceArea distanceArea = QgsDistanceArea();
223-
distanceArea.setSourceCrs( QgsCoordinateReferenceSystem( mWmsParameters.crs() ), mProject->transformContext() );
224-
distanceArea.setEllipsoid( geoNone() );
225-
context.setDistanceArea( distanceArea );
214+
configureDefaultRenderContext( context );
226215
ctx.context = &context;
227216

228217
nodeModel.drawSymbol( settings, &ctx, size.height() / dpmm );
@@ -1392,6 +1381,17 @@ namespace QgsWms
13921381
}
13931382
}
13941383

1384+
void QgsRenderer::configureDefaultRenderContext( QgsRenderContext &context )
1385+
{
1386+
context.setScaleFactor( mContext.dotsPerMm() );
1387+
const double mmPerMapUnit = 1 / QgsServerProjectUtils::wmsDefaultMapUnitsPerMm( *mProject );
1388+
context.setMapToPixel( QgsMapToPixel( 1 / ( mmPerMapUnit * context.scaleFactor() ) ) );
1389+
QgsDistanceArea distanceArea = QgsDistanceArea();
1390+
distanceArea.setSourceCrs( QgsCoordinateReferenceSystem( mWmsParameters.crs() ), mProject->transformContext() );
1391+
distanceArea.setEllipsoid( geoNone() );
1392+
context.setDistanceArea( distanceArea );
1393+
}
1394+
13951395
QDomDocument QgsRenderer::featureInfoDocument( QList<QgsMapLayer *> &layers, const QgsMapSettings &mapSettings,
13961396
const QImage *outputImage, const QString &version ) const
13971397
{

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,12 @@ namespace QgsWms
195195
*/
196196
void configureMapSettings( const QPaintDevice *paintDevice, QgsMapSettings &mapSettings, bool mandatoryCrsParam = true );
197197

198+
/**
199+
* Configures QgsRenderContext according to the WMS parameters and default settings. Used, for example, when no mapSettings are available.
200+
* \param context render context keeping info about the scale
201+
*/
202+
void configureDefaultRenderContext( QgsRenderContext &context );
203+
198204
QDomDocument featureInfoDocument( QList<QgsMapLayer *> &layers, const QgsMapSettings &mapSettings,
199205
const QImage *outputImage, const QString &version ) const;
200206

0 commit comments

Comments
 (0)
Please sign in to comment.