QGIS API Documentation
2.6.0-Brighton
|
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 | start ()=0 |
Start the rendering job and immediately return. | |
virtual void | cancel ()=0 |
Stop the rendering job - does not return until the job has terminated. | |
virtual void | waitForFinished ()=0 |
Block until the job has finished. | |
virtual bool | isActive () const =0 |
Tell whether the rendering job is currently running in background. | |
virtual QgsLabelingResults * | takeLabelingResults ()=0 |
Get pointer to internal labeling engine (in order to get access to the results) | |
Errors | errors () const |
List of errors that happened during the rendering job - available when the rendering has been finished. | |
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. | |
int | renderingTime () const |
Find out how log it took to finish the job (in miliseconds) |
Protected Member Functions | |
LayerRenderJobs | prepareJobs (QPainter *painter, QgsPalLabeling *labelingEngine) |
void | cleanupJobs (LayerRenderJobs &jobs) |
bool | needTemporaryImage (QgsMapLayer *ml) |
void | updateLayerGeometryCaches () |
called when rendering has finished to update all layers' geometry caches |
Static Protected Member Functions | |
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. | |
static QImage | composeImage (const QgsMapSettings &settings, const LayerRenderJobs &jobs) |
static void | drawLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext, QgsPalLabeling *labelingEngine, QPainter *painter) |
static void | drawOldLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext) |
static void | drawNewLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext, QgsPalLabeling *labelingEngine) |
Protected Attributes | |
QgsMapSettings | mSettings |
Errors | mErrors |
QgsMapRendererCache * | mCache |
QStringList | mRequestedGeomCacheForLayers |
list of layer IDs for which the geometry cache should be updated | |
QMap< QString, QgsGeometryCache > | mGeometryCaches |
map of geometry caches | |
QTime | mRenderingStart |
int | mRenderingTime |
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:
typedef QList<Error> QgsMapRendererJob::Errors |
QgsMapRendererJob::QgsMapRendererJob | ( | const QgsMapSettings & | settings | ) |
|
inlinevirtual |
|
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 |
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
staticprotected |
QgsMapRendererJob::Errors QgsMapRendererJob::errors | ( | ) | const |
List of errors that happened during the rendering job - available when the rendering has been finished.
|
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.
|
protected |
|
protected |
|
inline |
Find out how log it took to finish the job (in miliseconds)
|
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
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.
|
inline |
Set which vector layers should be cached while rendering.
|
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
|
pure virtual |
Block until the job has finished.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
protected |
|
protected |
|
protected |
map of geometry caches
|
protected |
|
protected |
|
protected |
list of layer IDs for which the geometry cache should be updated
|
protected |