Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Removes duplicated code
  • Loading branch information
pblottiere committed May 21, 2019
1 parent f542651 commit 0384f23
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 35 deletions.
61 changes: 26 additions & 35 deletions src/server/services/wms/qgswmsrenderer.cpp
Expand Up @@ -118,23 +118,8 @@ namespace QgsWms
QList<QgsMapLayer *> layers = mContext.layersToRender();
configureLayers( layers );

// getting scale from bbox or default size
QgsLegendSettings settings = mWmsParameters.legendSettings();
if ( !mWmsParameters.bbox().isEmpty() )
{
QgsMapSettings mapSettings;
std::unique_ptr<QImage> tmp( createImage( mContext.mapSize( false ) ) );
configureMapSettings( tmp.get(), mapSettings );
settings.setMapScale( mapSettings.scale() );
settings.setMapUnitsPerPixel( mapSettings.mapUnitsPerPixel() );
}
else
{
double defaultMapUnitsPerPixel = QgsServerProjectUtils::wmsDefaultMapUnitsPerMm( *mContext.project() ) / mContext.dotsPerMm();
settings.setMapUnitsPerPixel( defaultMapUnitsPerPixel );
}

// init renderer
QgsLegendSettings legendSettings();
QgsLegendRenderer renderer( &model, settings );

// create image
Expand Down Expand Up @@ -167,26 +152,9 @@ namespace QgsWms
QList<QgsMapLayer *> layers = mContext.layersToRender();
configureLayers( layers );

// getting scale from bbox
QgsLegendSettings settings = mWmsParameters.legendSettings();
if ( !mWmsParameters.bbox().isEmpty() )
{
QgsMapSettings mapSettings;
std::unique_ptr<QImage> tmp( createImage( mContext.mapSize( false ) ) );
configureMapSettings( tmp.get(), mapSettings );
settings.setMapScale( mapSettings.scale() );
settings.setMapUnitsPerPixel( mapSettings.mapUnitsPerPixel() );
}
else
{
double defaultMapUnitsPerPixel = QgsServerProjectUtils::wmsDefaultMapUnitsPerMm( *mContext.project() ) / mContext.dotsPerMm();
settings.setMapUnitsPerPixel( defaultMapUnitsPerPixel );
}

// create image
const int width = mWmsParameters.widthAsInt();
const int height = mWmsParameters.heightAsInt();
std::unique_ptr<QImage> image( createImage( QSize( width, height ) ) );
const QSize size( mWmsParameters.widthAsInt(), mWmsParameters.heightAsInt() );
std::unique_ptr<QImage> image( createImage( size ) );

// configure painter
const qreal dpmm = mContext.dotsPerMm();
Expand All @@ -196,6 +164,7 @@ namespace QgsWms
painter->scale( dpmm, dpmm );

// rendering
QgsLegendSettings legendSettings();
QgsLayerTreeModelLegendNode::ItemContext ctx;
ctx.painter = painter.get();
ctx.labelXOffset = 0;
Expand Down Expand Up @@ -2855,4 +2824,26 @@ namespace QgsWms
layer->readSld( sld, err );
layer->setCustomProperty( "readSLD", true );
}

QgsLegendSettings QgsRenderer::legendSettings() const
{
// getting scale from bbox or default size
QgsLegendSettings settings = mWmsParameters.legendSettings();

if ( !mWmsParameters.bbox().isEmpty() )
{
QgsMapSettings mapSettings;
std::unique_ptr<QImage> tmp( createImage( mContext.mapSize( false ) ) );
configureMapSettings( tmp.get(), mapSettings );
settings.setMapScale( mapSettings.scale() );
settings.setMapUnitsPerPixel( mapSettings.mapUnitsPerPixel() );
}
else
{
double defaultMapUnitsPerPixel = QgsServerProjectUtils::wmsDefaultMapUnitsPerMm( *mContext.project() ) / mContext.dotsPerMm();
settings.setMapUnitsPerPixel( defaultMapUnitsPerPixel );
}

return settings;
}
} // namespace QgsWms
1 change: 1 addition & 0 deletions src/server/services/wms/qgswmsrenderer.h
Expand Up @@ -129,6 +129,7 @@ namespace QgsWms
QByteArray getFeatureInfo( const QString &version = "1.3.0" );

private:
QgsLegendSettings legendSettings() const;

// Build and returns highlight layers
QList<QgsMapLayer *> highlightLayers( QList<QgsWmsParametersHighlightLayer> params );
Expand Down

0 comments on commit 0384f23

Please sign in to comment.