QGIS API Documentation  2.5.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
QgsMapRenderer Class Reference

A non GUI class for rendering a map layer set onto a QPainter. More...

#include <qgsmaprenderer.h>

Inheritance diagram for QgsMapRenderer:
Inheritance graph
[legend]

Public Types

enum  OutputUnits { Millimeters, Pixels }
 Output units for pen width and point marker width/height. More...
 
enum  BlendMode {
  BlendNormal, BlendLighten, BlendScreen, BlendDodge,
  BlendAddition, BlendDarken, BlendMultiply, BlendBurn,
  BlendOverlay, BlendSoftLight, BlendHardLight, BlendDifference,
  BlendSubtract, BlendSource, BlendDestinationOver, BlendClear,
  BlendDestination, BlendSourceIn, BlendDestinationIn, BlendSourceOut,
  BlendDestinationOut, BlendSourceAtop, BlendDestinationAtop, BlendXor
}
 Blending modes enum defining the available composition modes that can be used when rendering a layer. More...
 

Public Slots

Q_DECL_DEPRECATED void onDrawingProgress (int current, int total)
 

Signals

void drawingProgress (int current, int total)
 
Q_DECL_DEPRECATED void hasCrsTransformEnabled (bool flag)
 This signal is emitted when CRS transformation is enabled/disabled. More...
 
void hasCrsTransformEnabledChanged (bool flag)
 This signal is emitted when CRS transformation is enabled/disabled. More...
 
void destinationSrsChanged ()
 
void updateMap ()
 
void mapUnitsChanged ()
 
void drawError (QgsMapLayer *)
 emitted when layer's draw() returned false More...
 
void extentsChanged ()
 emitted when the current extent gets changed More...
 
void datumTransformInfoRequested (const QgsMapLayer *ml, const QString &srcAuthId, const QString &destAuthId) const
 Notifies higher level components to show the datum transform dialog and add a QgsLayerCoordinateTransformInfo for that layer. More...
 

Public Member Functions

 QgsMapRenderer ()
 constructor More...
 
 ~QgsMapRenderer ()
 destructor More...
 
void render (QPainter *painter, double *forceWidthScale=0)
 starts rendering More...
 
bool setExtent (const QgsRectangle &extent)
 sets extent and checks whether suitable (returns false if not) More...
 
QgsRectangle extent () const
 returns current extent More...
 
const QgsMapToPixelcoordinateTransform ()
 
double scale () const
 Scale denominator. More...
 
void setScale (double scale)
 Sets scale for scale based visibility. More...
 
double mapUnitsPerPixel () const
 
int width () const
 
int height () const
 
void updateScale ()
 Recalculate the map scale. More...
 
QGis::UnitType mapUnits () const
 
void setMapUnits (QGis::UnitType u)
 
void enableOverviewMode (bool isOverview=true)
 sets whether map image will be for overview More...
 
void setOutputSize (QSize size, int dpi)
 
void setOutputSize (QSizeF size, double dpi)
 
double outputDpi ()
 accessor for output dpi More...
 
QSize outputSize ()
 accessor for output size More...
 
QSizeF outputSizeF ()
 
QgsRectangle layerExtentToOutputExtent (QgsMapLayer *theLayer, QgsRectangle extent)
 transform bounding box from layer's CRS to output CRS More...
 
QgsRectangle outputExtentToLayerExtent (QgsMapLayer *theLayer, QgsRectangle extent)
 transform bounding box from output CRS to layer's CRS More...
 
QgsPoint layerToMapCoordinates (QgsMapLayer *theLayer, QgsPoint point)
 transform point coordinates from layer's CRS to output CRS More...
 
QgsRectangle layerToMapCoordinates (QgsMapLayer *theLayer, QgsRectangle rect)
 transform rectangle from layer's CRS to output CRS More...
 
QgsPoint mapToLayerCoordinates (QgsMapLayer *theLayer, QgsPoint point)
 transform point coordinates from output CRS to layer's CRS More...
 
QgsRectangle mapToLayerCoordinates (QgsMapLayer *theLayer, QgsRectangle rect)
 transform rectangle from output CRS to layer's CRS More...
 
void setProjectionsEnabled (bool enabled)
 sets whether to use projections for this layer set More...
 
bool hasCrsTransformEnabled () const
 returns true if projections are enabled for this layer set More...
 
void setDestinationCrs (const QgsCoordinateReferenceSystem &crs, bool refreshCoordinateTransformInfo=true, bool transformExtent=true)
 sets destination coordinate reference system More...
 
const
QgsCoordinateReferenceSystem
destinationCrs () const
 returns CRS of destination coordinate reference system More...
 
void setOutputUnits (OutputUnits u)
 
OutputUnits outputUnits () const
 
QgsRectangle fullExtent ()
 returns current extent of layer set More...
 
QStringList & layerSet ()
 returns current layer set More...
 
void setLayerSet (const QStringList &layers)
 change current layer set More...
 
void updateFullExtent ()
 updates extent of the layer set More...
 
bool readXML (QDomNode &theNode)
 read settings More...
 
bool writeXML (QDomNode &theNode, QDomDocument &theDoc)
 write settings More...
 
QgsRenderContextrendererContext ()
 Accessor for render context. More...
 
QgsLabelingEngineInterfacelabelingEngine ()
 Labeling engine (NULL if there's no custom engine) More...
 
void setLabelingEngine (QgsLabelingEngineInterface *iface)
 Set labeling engine. More...
 
void addLayerCoordinateTransform (const QString &layerId, const QString &srcAuthId, const QString &destAuthId, int srcDatumTransform=-1, int destDatumTransform=-1)
 
void clearLayerCoordinateTransforms ()
 
const QgsCoordinateTransformtransformation (const QgsMapLayer *layer) const
 
const QgsMapSettingsmapSettings ()
 bridge to QgsMapSettings More...
 
bool splitLayersExtent (QgsMapLayer *layer, 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. More...
 

Static Public Member Functions

static QPainter::CompositionMode getCompositionMode (const QgsMapRenderer::BlendMode &blendMode)
 Returns a QPainter::CompositionMode corresponding to a BlendMode. More...
 
static QgsMapRenderer::BlendMode getBlendModeEnum (const QPainter::CompositionMode &blendMode)
 Returns a BlendMode corresponding to a QPainter::CompositionMode. More...
 

Protected Member Functions

void adjustExtentToSize ()
 adjust extent to fit the pixmap size More...
 

Protected Attributes

double mMapUnitsPerPixel
 map units per pixel More...
 
double mScale
 Map scale denominator at its current zoom level. More...
 
QgsScaleCalculatormScaleCalculator
 scale calculator More...
 
QgsRectangle mExtent
 current extent to be drawn More...
 
QgsRectangle mLastExtent
 Last extent to we drew so we know if we can used layer render caching or not. More...
 
bool mOverview
 indicates whether it's map image for overview More...
 
QSizeF mSize
 
bool mProjectionsEnabled
 detemines whether on the fly projection support is enabled More...
 
QgsCoordinateReferenceSystemmDestCRS
 destination spatial reference system of the projection More...
 
QStringList mLayerSet
 stores array of layers to be rendered (identified by string) More...
 
QgsRectangle mFullExtent
 full extent of the layer set More...
 
QgsDistanceAreamDistArea
 tool for measuring More...
 
QgsRenderContext mRenderContext
 Encapsulates context of rendering. More...
 
OutputUnits mOutputUnits
 Output units. More...
 
QgsLabelingEngineInterfacemLabelingEngine
 Labeling engine (NULL by default) More...
 
QMutex mRenderMutex
 Locks rendering loop for concurrent draws. More...
 
QgsMapSettings mMapSettings
 map settings - used only for export in mapSettings() for use in classes that deal with QgsMapSettings More...
 
QHash< QString,
QgsLayerCoordinateTransform
mLayerCoordinateTransformInfo
 

Static Protected Attributes

static bool mDrawing = false
 indicates drawing in progress More...
 

Detailed Description

A non GUI class for rendering a map layer set onto a QPainter.

Constructor & Destructor Documentation

QgsMapRenderer::QgsMapRenderer ( )

constructor

QgsMapRenderer::~QgsMapRenderer ( )

destructor

Member Function Documentation

void QgsMapRenderer::addLayerCoordinateTransform ( const QString &  layerId,
const QString &  srcAuthId,
const QString &  destAuthId,
int  srcDatumTransform = -1,
int  destDatumTransform = -1 
)
void QgsMapRenderer::adjustExtentToSize ( )
protected

adjust extent to fit the pixmap size

void QgsMapRenderer::clearLayerCoordinateTransforms ( )
const QgsMapToPixel* QgsMapRenderer::coordinateTransform ( )
inline
void QgsMapRenderer::datumTransformInfoRequested ( const QgsMapLayer ml,
const QString &  srcAuthId,
const QString &  destAuthId 
) const
signal

Notifies higher level components to show the datum transform dialog and add a QgsLayerCoordinateTransformInfo for that layer.

const QgsCoordinateReferenceSystem & QgsMapRenderer::destinationCrs ( ) const

returns CRS of destination coordinate reference system

void QgsMapRenderer::destinationSrsChanged ( )
signal
void QgsMapRenderer::drawError ( QgsMapLayer )
signal

emitted when layer's draw() returned false

void QgsMapRenderer::drawingProgress ( int  current,
int  total 
)
signal
Deprecated:
in 2.4 - not emitted anymore
void QgsMapRenderer::enableOverviewMode ( bool  isOverview = true)
inline

sets whether map image will be for overview

QgsRectangle QgsMapRenderer::extent ( ) const

returns current extent

void QgsMapRenderer::extentsChanged ( )
signal

emitted when the current extent gets changed

Note
added in 2.4
QgsRectangle QgsMapRenderer::fullExtent ( )

returns current extent of layer set

QgsMapRenderer::BlendMode QgsMapRenderer::getBlendModeEnum ( const QPainter::CompositionMode &  blendMode)
static

Returns a BlendMode corresponding to a QPainter::CompositionMode.

QPainter::CompositionMode QgsMapRenderer::getCompositionMode ( const QgsMapRenderer::BlendMode blendMode)
static

Returns a QPainter::CompositionMode corresponding to a BlendMode.

Returns a QPainter::CompositionMode corresponding to a QgsMapRenderer::BlendMode.

bool QgsMapRenderer::hasCrsTransformEnabled ( ) const

returns true if projections are enabled for this layer set

Q_DECL_DEPRECATED void QgsMapRenderer::hasCrsTransformEnabled ( bool  flag)
signal

This signal is emitted when CRS transformation is enabled/disabled.

Parameters
flagtrue if transformation is enabled.
Deprecated:
Use hasCrsTransformEnabledChanged( bool flag ) to avoid conflict with method of the same name).
void QgsMapRenderer::hasCrsTransformEnabledChanged ( bool  flag)
signal

This signal is emitted when CRS transformation is enabled/disabled.

Parameters
flagtrue if transformation is enabled.
Note
Added in 2.4
int QgsMapRenderer::height ( ) const
inline
QgsLabelingEngineInterface* QgsMapRenderer::labelingEngine ( )
inline

Labeling engine (NULL if there's no custom engine)

QgsRectangle QgsMapRenderer::layerExtentToOutputExtent ( QgsMapLayer theLayer,
QgsRectangle  extent 
)

transform bounding box from layer's CRS to output CRS

See also
layerToMapCoordinates( QgsMapLayer* theLayer, QgsRectangle rect ) if you want to transform a rectangle
Returns
a bounding box (aligned rectangle) containing the transformed extent
QStringList & QgsMapRenderer::layerSet ( )

returns current layer set

QgsPoint QgsMapRenderer::layerToMapCoordinates ( QgsMapLayer theLayer,
QgsPoint  point 
)

transform point coordinates from layer's CRS to output CRS

Returns
the transformed point
QgsRectangle QgsMapRenderer::layerToMapCoordinates ( QgsMapLayer theLayer,
QgsRectangle  rect 
)

transform rectangle from layer's CRS to output CRS

See also
layerExtentToOutputExtent() if you want to transform a bounding box
Returns
the transformed rectangle
const QgsMapSettings & QgsMapRenderer::mapSettings ( )

bridge to QgsMapSettings

Note
added in 2.4
QgsPoint QgsMapRenderer::mapToLayerCoordinates ( QgsMapLayer theLayer,
QgsPoint  point 
)

transform point coordinates from output CRS to layer's CRS

Returns
the transformed point
QgsRectangle QgsMapRenderer::mapToLayerCoordinates ( QgsMapLayer theLayer,
QgsRectangle  rect 
)

transform rectangle from output CRS to layer's CRS

See also
outputExtentToLayerExtent() if you want to transform a bounding box
Returns
the transformed rectangle
QGis::UnitType QgsMapRenderer::mapUnits ( ) const
void QgsMapRenderer::mapUnitsChanged ( )
signal
double QgsMapRenderer::mapUnitsPerPixel ( ) const
inline
void QgsMapRenderer::onDrawingProgress ( int  current,
int  total 
)
slot
Deprecated:
in 2.4 - does nothing
double QgsMapRenderer::outputDpi ( )

accessor for output dpi

QgsRectangle QgsMapRenderer::outputExtentToLayerExtent ( QgsMapLayer theLayer,
QgsRectangle  extent 
)

transform bounding box from output CRS to layer's CRS

See also
mapToLayerCoordinates( QgsMapLayer* theLayer,QgsRectangle rect ) if you want to transform a rectangle
Returns
a bounding box (aligned rectangle) containing the transformed extent
QSize QgsMapRenderer::outputSize ( )

accessor for output size

QSizeF QgsMapRenderer::outputSizeF ( )
OutputUnits QgsMapRenderer::outputUnits ( ) const
inline
bool QgsMapRenderer::readXML ( QDomNode &  theNode)

read settings

void QgsMapRenderer::render ( QPainter *  painter,
double *  forceWidthScale = 0 
)

starts rendering

Parameters
painterpainter to render to
forceWidthScaleForce a specific scale factor for line widths and marker sizes. Automatically calculated from output device DPI if 0
QgsRenderContext* QgsMapRenderer::rendererContext ( )
inline

Accessor for render context.

double QgsMapRenderer::scale ( ) const
inline

Scale denominator.

void QgsMapRenderer::setDestinationCrs ( const QgsCoordinateReferenceSystem crs,
bool  refreshCoordinateTransformInfo = true,
bool  transformExtent = true 
)

sets destination coordinate reference system

bool QgsMapRenderer::setExtent ( const QgsRectangle extent)

sets extent and checks whether suitable (returns false if not)

void QgsMapRenderer::setLabelingEngine ( QgsLabelingEngineInterface iface)

Set labeling engine.

Previous engine (if any) is deleted. Takes ownership of the engine.

void QgsMapRenderer::setLayerSet ( const QStringList &  layers)

change current layer set

void QgsMapRenderer::setMapUnits ( QGis::UnitType  u)
void QgsMapRenderer::setOutputSize ( QSize  size,
int  dpi 
)
void QgsMapRenderer::setOutputSize ( QSizeF  size,
double  dpi 
)
void QgsMapRenderer::setOutputUnits ( OutputUnits  u)
inline
void QgsMapRenderer::setProjectionsEnabled ( bool  enabled)

sets whether to use projections for this layer set

void QgsMapRenderer::setScale ( double  scale)
inline

Sets scale for scale based visibility.

Normally, the scale is calculated automatically. This function is only used to force a preview scale (e.g. for print composer)

bool QgsMapRenderer::splitLayersExtent ( QgsMapLayer layer,
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.

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

const QgsCoordinateTransform * QgsMapRenderer::transformation ( const QgsMapLayer layer) const
void QgsMapRenderer::updateFullExtent ( )

updates extent of the layer set

void QgsMapRenderer::updateMap ( )
signal
Deprecated:
in 2.4 - not emitted anymore
void QgsMapRenderer::updateScale ( )

Recalculate the map scale.

int QgsMapRenderer::width ( ) const
inline
bool QgsMapRenderer::writeXML ( QDomNode &  theNode,
QDomDocument &  theDoc 
)

write settings

Member Data Documentation

QgsCoordinateReferenceSystem* QgsMapRenderer::mDestCRS
protected

destination spatial reference system of the projection

QgsDistanceArea* QgsMapRenderer::mDistArea
protected

tool for measuring

bool QgsMapRenderer::mDrawing = false
staticprotected

indicates drawing in progress

QgsRectangle QgsMapRenderer::mExtent
protected

current extent to be drawn

QgsRectangle QgsMapRenderer::mFullExtent
protected

full extent of the layer set

QgsLabelingEngineInterface* QgsMapRenderer::mLabelingEngine
protected

Labeling engine (NULL by default)

QgsRectangle QgsMapRenderer::mLastExtent
protected

Last extent to we drew so we know if we can used layer render caching or not.

Note there are no accessors for this as it is intended to internal use only.

QHash< QString, QgsLayerCoordinateTransform > QgsMapRenderer::mLayerCoordinateTransformInfo
protected
QStringList QgsMapRenderer::mLayerSet
protected

stores array of layers to be rendered (identified by string)

QgsMapSettings QgsMapRenderer::mMapSettings
protected

map settings - used only for export in mapSettings() for use in classes that deal with QgsMapSettings

double QgsMapRenderer::mMapUnitsPerPixel
protected

map units per pixel

OutputUnits QgsMapRenderer::mOutputUnits
protected

Output units.

bool QgsMapRenderer::mOverview
protected

indicates whether it's map image for overview

bool QgsMapRenderer::mProjectionsEnabled
protected

detemines whether on the fly projection support is enabled

QgsRenderContext QgsMapRenderer::mRenderContext
protected

Encapsulates context of rendering.

QMutex QgsMapRenderer::mRenderMutex
protected

Locks rendering loop for concurrent draws.

double QgsMapRenderer::mScale
protected

Map scale denominator at its current zoom level.

QgsScaleCalculator* QgsMapRenderer::mScaleCalculator
protected

scale calculator

QSizeF QgsMapRenderer::mSize
protected

The documentation for this class was generated from the following files: