17
17
18
18
#include " qgsapplication.h"
19
19
#include " qgsmaplayerregistry.h"
20
+ #include " qgsmaprenderersequentialjob.h"
21
+ #include " qgsmapsettings.h"
20
22
#include < qgsrenderchecker.h>
21
23
#include " qgsvectorlayer.h"
22
24
#include " qgsvectorlayerrenderer.h"
@@ -119,19 +121,15 @@ void TestQgsAdjacentTiles::testFourAdjacentTiles()
119
121
QFAIL ( errorMsg.toLocal8Bit ().data () );
120
122
}
121
123
124
+ QgsMapLayerRegistry::instance ()->addMapLayers ( QList<QgsMapLayer*>() << vectorLayer );
125
+
122
126
QImage globalImage ( 512 , 512 , QImage::Format_ARGB32_Premultiplied );
123
127
globalImage.fill ( Qt::white );
124
128
QPainter globalPainter ( &globalImage );
125
129
126
130
for ( int i = 0 ; i < 4 ; ++i )
127
131
{
128
- QImage img ( 256 , 256 , QImage::Format_ARGB32_Premultiplied );
129
- img.fill ( Qt::white );
130
- QPainter p ( &img );
131
-
132
- QgsRenderContext renderContext;
133
- renderContext.setPainter ( &p );
134
- renderContext.setFlag ( QgsRenderContext::RenderMapTile, true );
132
+ QgsMapSettings mapSettings;
135
133
136
134
// extent
137
135
QStringList rectCoords = bboxList.at ( i ).split ( " ," );
@@ -140,24 +138,22 @@ void TestQgsAdjacentTiles::testFourAdjacentTiles()
140
138
QFAIL ( " bbox string invalid" );
141
139
}
142
140
QgsRectangle rect ( rectCoords[0 ].toDouble (), rectCoords[1 ].toDouble (), rectCoords[2 ].toDouble (), rectCoords[3 ].toDouble () );
143
- renderContext.setExtent ( rect );
144
-
145
- // maptopixel
146
- QgsMapToPixel mapToPixel ( rect.width () / 256.0 , rect.center ().x (), rect.center ().y (), 256 , 256 , 0 );
147
- renderContext.setMapToPixel ( mapToPixel );
148
-
149
- QgsVectorLayerRenderer renderer ( vectorLayer, renderContext );
150
- if ( !renderer.render () )
151
- {
152
- QFAIL ( " Rendering failed" );
153
- }
154
-
141
+ mapSettings.setExtent ( rect );
142
+ mapSettings.setOutputSize ( QSize ( 256 , 256 ) );
143
+ mapSettings.setLayers ( QStringList () << vectorLayer->id () );
144
+ mapSettings.setFlags ( QgsMapSettings::RenderMapTile );
145
+ mapSettings.setOutputDpi ( 96 );
146
+
147
+ QgsMapRendererSequentialJob renderJob ( mapSettings );
148
+ renderJob.start ();
149
+ renderJob.waitForFinished ();
150
+ QImage img = renderJob.renderedImage ();
155
151
int globalImageX = ( i % 2 ) * 256 ;
156
152
int globalImageY = ( i < 2 ) ? 0 : 256 ;
157
153
globalPainter.drawImage ( globalImageX, globalImageY, img );
158
154
}
159
155
160
- delete vectorLayer;
156
+ QgsMapLayerRegistry::instance ()-> removeMapLayers ( QStringList () << vectorLayer-> id () ) ;
161
157
162
158
QString renderedImagePath = QDir::tempPath () + " /" + QTest::currentDataTag () + QString ( " .png" );
163
159
globalImage.save ( renderedImagePath );
0 commit comments