QGIS API Documentation
2.8.2-Wien
|
Abstract base class for map rendering implementations. More...
#include <qgsmaprendererjob.h>
Classes | |
struct | Error |
Public Types | |
typedef QList< Error > | Errors |
Signals | |
void | finished () |
emitted when asynchronous rendering is finished (or canceled). |
Public Member Functions | |
QgsMapRendererJob (const QgsMapSettings &settings) | |
virtual | ~QgsMapRendererJob () |
virtual void | cancel ()=0 |
Stop the rendering job - does not return until the job has terminated. | |
Errors | errors () const |
List of errors that happened during the rendering job - available when the rendering has been finished. | |
virtual bool | isActive () const =0 |
Tell whether the rendering job is currently running in background. | |
const QgsMapSettings & | mapSettings () const |
Return map settings with which this job was started. | |
int | renderingTime () const |
Find out how log it took to finish the job (in miliseconds) | |
void | setCache (QgsMapRendererCache *cache) |
Assign a cache to be used for reading and storing rendered images of individual layers. | |
void | setRequestedGeometryCacheForLayers (const QStringList &layerIds) |
Set which vector layers should be cached while rendering. | |
virtual void | start ()=0 |
Start the rendering job and immediately return. | |
virtual QgsLabelingResults * | takeLabelingResults ()=0 |
Get pointer to internal labeling engine (in order to get access to the results) | |
virtual void | waitForFinished ()=0 |
Block until the job has finished. |
Protected Member Functions | |
void | cleanupJobs (LayerRenderJobs &jobs) |
bool | needTemporaryImage (QgsMapLayer *ml) |
LayerRenderJobs | prepareJobs (QPainter *painter, QgsPalLabeling *labelingEngine) |
void | updateLayerGeometryCaches () |
called when rendering has finished to update all layers' geometry caches |
Static Protected Member Functions | |
static QImage | composeImage (const QgsMapSettings &settings, const LayerRenderJobs &jobs) |
static void | drawLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext, QgsPalLabeling *labelingEngine, QPainter *painter) |
static void | drawNewLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext, QgsPalLabeling *labelingEngine) |
static void | drawOldLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext) |
static bool | reprojectToLayerExtent (const QgsCoordinateTransform *ct, bool layerCrsGeographic, QgsRectangle &extent, QgsRectangle &r2) |
Convenience function to project an extent into the layer source CRS, but also split it into two extents if it crosses the +/- 180 degree line. |
Protected Attributes | |
QgsMapRendererCache * | mCache |
Errors | mErrors |
QMap< QString, QgsGeometryCache > | mGeometryCaches |
map of geometry caches | |
QTime | mRenderingStart |
int | mRenderingTime |
QStringList | mRequestedGeomCacheForLayers |
list of layer IDs for which the geometry cache should be updated | |
QgsMapSettings | mSettings |
Abstract base class for map rendering implementations.
The API is designed in a way that rendering is done asynchronously, therefore the caller is not blocked while the rendering is in progress. Non-blocking operation is quite important because the rendering can take considerable amount of time.
Common use case: 0. prepare QgsMapSettings with rendering configuration (extent, layer, map size, ...)
It is possible to cancel the rendering job while it is active by calling cancel() function.
The following subclasses are available:
Definition at line 78 of file qgsmaprendererjob.h.
typedef QList<Error> QgsMapRendererJob::Errors |
Definition at line 112 of file qgsmaprendererjob.h.
QgsMapRendererJob::QgsMapRendererJob | ( | const QgsMapSettings & | settings | ) |
Definition at line 36 of file qgsmaprendererjob.cpp.
|
inlinevirtual |
Definition at line 85 of file qgsmaprendererjob.h.
|
pure virtual |
Stop the rendering job - does not return until the job has terminated.
Does nothing if the rendering is not active.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
protected |
Definition at line 281 of file qgsmaprendererjob.cpp.
|
staticprotected |
Definition at line 317 of file qgsmaprendererjob.cpp.
|
staticprotected |
Definition at line 248 of file qgsmaprenderercustompainterjob.cpp.
|
staticprotected |
Definition at line 314 of file qgsmaprenderercustompainterjob.cpp.
|
staticprotected |
Definition at line 272 of file qgsmaprenderercustompainterjob.cpp.
QgsMapRendererJob::Errors QgsMapRendererJob::errors | ( | ) | const |
List of errors that happened during the rendering job - available when the rendering has been finished.
Definition at line 50 of file qgsmaprendererjob.cpp.
|
signal |
emitted when asynchronous rendering is finished (or canceled).
|
pure virtual |
Tell whether the rendering job is currently running in background.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
const QgsMapSettings & QgsMapRendererJob::mapSettings | ( | ) | const |
Return map settings with which this job was started.
Definition at line 60 of file qgsmaprendererjob.cpp.
|
protected |
Definition at line 339 of file qgsmaprenderercustompainterjob.cpp.
|
protected |
Definition at line 138 of file qgsmaprendererjob.cpp.
|
inline |
Find out how log it took to finish the job (in miliseconds)
Definition at line 127 of file qgsmaprendererjob.h.
|
staticprotected |
Convenience function to project an extent into the layer source CRS, but also split it into two extents if it crosses the +/- 180 degree line.
Modifies the given extent to be in the source CRS coordinates, and if it was split, returns true, and also sets the contents of the r2 parameter
Definition at line 66 of file qgsmaprendererjob.cpp.
void QgsMapRendererJob::setCache | ( | QgsMapRendererCache * | cache | ) |
Assign a cache to be used for reading and storing rendered images of individual layers.
Does not take ownership of the object.
Definition at line 55 of file qgsmaprendererjob.cpp.
|
inline |
Set which vector layers should be cached while rendering.
Definition at line 124 of file qgsmaprendererjob.h.
|
pure virtual |
Start the rendering job and immediately return.
Does nothing if the rendering is already in progress.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
pure virtual |
Get pointer to internal labeling engine (in order to get access to the results)
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
protected |
called when rendering has finished to update all layers' geometry caches
Definition at line 327 of file qgsmaprenderercustompainterjob.cpp.
|
pure virtual |
Block until the job has finished.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
protected |
Definition at line 171 of file qgsmaprendererjob.h.
|
protected |
Definition at line 169 of file qgsmaprendererjob.h.
|
protected |
map of geometry caches
Definition at line 176 of file qgsmaprendererjob.h.
|
protected |
Definition at line 178 of file qgsmaprendererjob.h.
|
protected |
Definition at line 179 of file qgsmaprendererjob.h.
|
protected |
list of layer IDs for which the geometry cache should be updated
Definition at line 174 of file qgsmaprendererjob.h.
|
protected |
Definition at line 168 of file qgsmaprendererjob.h.