A multi thread Qt4 widget to control the display of a set of layers. More...
#include <MultiThreadMapDisplay.h>
Public Types | |
enum | ResizePolicy { Fixed, Cut, Center } |
Defines the resize policy for map display. More... | |
Signals | |
void | displayPaintEvent (QPainter *) |
void | displaySridChanged () |
void | drawLayersFinished (const QMap< QString, QString > &errors) |
This signal is emitted when the draw process ends. i.e. when all layers have been drawn. More... | |
void | extentChanged () |
Public Member Functions | |
virtual QColor | getBackgroundColor () |
Gets the map display background color. More... | |
virtual QPixmap * | getDisplayPixmap () const |
It returns the map display pixmap. More... | |
virtual void | getDPI (int &dpiX, int &dpiY) const |
Returns the current values of the DPI in X-axis and in Y-axis. More... | |
virtual QPixmap * | getDraftPixmap () const |
It returns the map display draft pixmap. More... | |
virtual const te::gm::Envelope & | getExtent () const |
It returns the world extent showned by the MapDisplay. More... | |
virtual te::map::AlignType | getHAlign () const |
It returns the MapDisplay current horizontal align. More... | |
virtual double | getScale () const |
Calculates and return the current scale. More... | |
virtual int | getSRID () const |
It return the Spatial Reference System used by the Map Display. More... | |
virtual te::map::AlignType | getVAlign () const |
It returns the MapDisplay current vertical align. More... | |
bool | isDrawing () const |
Returns if the map display is drawing. More... | |
virtual void | restoreDPI () |
Returns the default value of the DPI. In this case, the values from the device will be acquired. More... | |
virtual void | setAlign (te::map::AlignType h, te::map::AlignType v) |
It will set the align rendering of objects into the map display. Just successive drawings will be affected by this modification. More... | |
virtual void | setBackgroundColor (const QColor &color) |
Sets the map display background color. More... | |
virtual void | setLayerList (const std::list< te::map::AbstractLayerPtr > &layers) |
It sets the layer list to be showed in the Map Display. More... | |
virtual void | setOverrideDPI (int dpiX, int dpiY) |
Overrides the values of the DPI that had been acquired from the device. This is done in order to make the scale be correctly computed and allows the correct computation of sizes in millimeters. More... | |
virtual void | setResizeInterval (int msec) |
Sets the timeout interval in milliseconds to redraw on resize event. More... | |
virtual void | setResizePolicy (const ResizePolicy &policy) |
Sets the resize policy to this map display. More... | |
virtual bool | setScale (const double &scale) |
Defines the scale and calculates envelope based on the requested scale. More... | |
void | setSynchronous (bool on) |
virtual QPointF | transform (const QPointF &p) |
Transforms the given point, in screen coordinates, to a point in world coordinates. More... | |
void | updateLayer (te::map::AbstractLayerPtr layer) |
Initializer Methods | |
Methods related to instantiation and destruction. | |
MultiThreadMapDisplay (const QSize &size, const bool &showFeedback=true, QWidget *parent=0, Qt::WindowFlags f=0) | |
It constructs an empty multi thread map display with the given dimensions which is a child of parent, with widget flags set to f. More... | |
MultiThreadMapDisplay (QWidget *parent=0, const bool &showFeedback=true, Qt::WindowFlags f=0) | |
~MultiThreadMapDisplay () | |
Destructor. More... | |
AbstractMapDisplay Methods | |
void | setExtent (te::gm::Envelope &e, bool doRefresh=true) |
It sets the world visible area and refreshes the contents in the map display. More... | |
void | refresh () |
It updates the contents in the map display. More... | |
AbstractMapDisplay Methods | |
virtual void | changeData (te::map::AbstractLayerPtr, int nsrid=TE_UNKNOWN_SRS) |
unsigned int | getWidth () const |
It returns the MapDisplay current width in pixels. More... | |
unsigned int | getHeight () const |
It returns the MapDisplay current height in pixels. More... | |
double | getWidthMM () const |
It returns the MapDisplay current width in millimeters. More... | |
double | getHeightMM () const |
It returns the MapDisplay current height in millimeters. More... | |
virtual void | setSRID (const int &srid, bool doRefresh=true) |
It sets a new Spatial Reference System to be used by the Map Display. More... | |
Protected Slots | |
void | onDrawLayerFinished (const int &index, const QImage &image) |
virtual void | onResizeTimeout () |
void | showFeedback (const QImage &image) |
Protected Member Functions | |
virtual void | adjustExtent (const QSize &oldSize, const QSize &size) |
It adjusts the map display extent based on resize policy. More... | |
virtual void | draw (te::map::AbstractLayer *layer, QPainter &painter) |
It displays the given layer. More... | |
virtual te::qt::widgets::Canvas * | getCanvas (te::map::AbstractLayer *layer, int type=QInternal::Pixmap) |
It retrieves an associated canvas to the given layer. More... | |
virtual void | paintEvent (QPaintEvent *e) |
It assembles the final image and draws the widget. More... | |
virtual void | resizeAllCanvas () |
It resizes all canvas of map display. More... | |
virtual void | resizeEvent (QResizeEvent *e) |
This event handler receives widget resize events wich are passed in the event parameter. More... | |
Protected Attributes | |
QColor | m_backgroundColor |
Background color. More... | |
QPixmap * | m_displayPixmap |
This pixmap will be the result of all canvas pixmap drawing, i. e., the result of drawing all visible layers. More... | |
QPixmap * | m_draftPixmap |
The draft pixmap can be used to draw some feedback on map display. More... | |
te::gm::Envelope | m_extent |
The display extent. More... | |
te::map::AlignType | m_hAlign |
The display horizontal align. More... | |
std::map< int, QImage > | m_images |
The set of images built by each thread. It will be used to compose the final result, keeping the layer list order. More... | |
int | m_interval |
Timeout interval in milliseconds to redraw. More... | |
bool | m_isDrawing |
A flag that indicates if the map display is drawing. More... | |
std::map< te::map::AbstractLayer *, te::qt::widgets::Canvas * > | m_layerCanvasMap |
A map that associates a layer to a canvas. More... | |
std::list< te::map::AbstractLayerPtr > | m_layerList |
The layer list to be displayed. More... | |
QMatrix | m_matrix |
Used to convert screen coordinates to world coordinates. More... | |
QSize | m_oldSize |
Stores the last size of map display on start resize event. More... | |
int | m_overridedDpiX |
Overrided value of the DPI in the X-axis, so the scale can be correctly computed. More... | |
int | m_overridedDpiY |
Overrided value of the DPI in the X-axis, so the scale can be correctly computed. More... | |
ResizePolicy | m_resizePolicy |
Resize policy for this map display. More... | |
double | m_scale |
Current calculated scale. More... | |
bool | m_showFeedback |
A flag that indicates if the map display will show drawing feedback. More... | |
int | m_srid |
The display SRS. More... | |
bool | m_synchronous |
A flag that indicates if the map display is synchronous or asynchronous. More... | |
std::vector< DrawLayerThread * > | m_threads |
The set of threads used to draw the layer list. More... | |
QTimer * | m_timer |
Timer to execute redraw on resize action. More... | |
te::map::AlignType | m_vAlign |
The display vertical align. More... | |
std::list< te::map::AbstractLayerPtr > | m_visibleLayers |
The set of visible layers. More... | |
Private Member Functions | |
void | updateTransform () |
Copy Constructor and Assignment Operator | |
Copy constructor and assignment operator not allowed. | |
MultiThreadMapDisplay (const MultiThreadMapDisplay &rhs) | |
Copy constructor not allowed. More... | |
MultiThreadMapDisplay & | operator= (const MultiThreadMapDisplay &rhs) |
Assignment operator not allowed. More... | |
A multi thread Qt4 widget to control the display of a set of layers.
Definition at line 58 of file MultiThreadMapDisplay.h.
|
inherited |
Defines the resize policy for map display.
Enumerator | |
---|---|
Fixed |
Document-me! |
Cut |
Document-me! |
Center |
Document-me! |
Definition at line 77 of file MapDisplay.h.
te::qt::widgets::MultiThreadMapDisplay::MultiThreadMapDisplay | ( | const QSize & | size, |
const bool & | showFeedback = true , |
||
QWidget * | parent = 0 , |
||
Qt::WindowFlags | f = 0 |
||
) |
It constructs an empty multi thread map display with the given dimensions which is a child of parent, with widget flags set to f.
size | The map display size. |
showFeedback | A flag that indicates if the map display will show drawing feedback. |
parent | The widget's parent. |
f | Widget window flags. |
te::qt::widgets::MultiThreadMapDisplay::MultiThreadMapDisplay | ( | QWidget * | parent = 0 , |
const bool & | showFeedback = true , |
||
Qt::WindowFlags | f = 0 |
||
) |
te::qt::widgets::MultiThreadMapDisplay::~MultiThreadMapDisplay | ( | ) |
Destructor.
|
private |
Copy constructor not allowed.
rhs | The right-hand-side copy that would be used to copy from. |
|
protectedvirtualinherited |
It adjusts the map display extent based on resize policy.
oldSize | The size before the resize. |
size | The size after the resize. |
|
virtualinherited |
|
signalinherited |
this signal is issued to others draw on this display.
|
signalinherited |
This signal is sent to others know that the projection was changed.
|
protectedvirtualinherited |
It displays the given layer.
layer | The layer that will be drawn. |
painter | The painter that will composed the draw result. |
|
signal |
This signal is emitted when the draw process ends. i.e. when all layers have been drawn.
errors | A map that indicates the errors that could be occurred during the draw process. i.e layer id -> error message |
|
signalinherited |
This signal is emitted when the map display extent changed.
|
virtualinherited |
Gets the map display background color.
|
protectedvirtualinherited |
It retrieves an associated canvas to the given layer.
layer | The layer for wich we want to get an associated canvas. |
|
virtualinherited |
It returns the map display pixmap.
|
virtualinherited |
Returns the current values of the DPI in X-axis and in Y-axis.
|
virtualinherited |
It returns the map display draft pixmap.
|
virtualinherited |
It returns the world extent showned by the MapDisplay.
Implements te::map::AbstractMapDisplay.
|
virtualinherited |
It returns the MapDisplay current horizontal align.
Implements te::map::AbstractMapDisplay.
|
virtualinherited |
It returns the MapDisplay current height in pixels.
Implements te::map::AbstractMapDisplay.
|
virtualinherited |
It returns the MapDisplay current height in millimeters.
Implements te::map::AbstractMapDisplay.
|
virtualinherited |
Calculates and return the current scale.
|
virtualinherited |
It return the Spatial Reference System used by the Map Display.
Implements te::map::AbstractMapDisplay.
|
virtualinherited |
It returns the MapDisplay current vertical align.
Implements te::map::AbstractMapDisplay.
|
virtualinherited |
It returns the MapDisplay current width in pixels.
Implements te::map::AbstractMapDisplay.
|
virtualinherited |
It returns the MapDisplay current width in millimeters.
Implements te::map::AbstractMapDisplay.
|
inherited |
Returns if the map display is drawing.
|
protectedslot |
|
protectedvirtualslotinherited |
|
private |
Assignment operator not allowed.
rhs | The right-hand-side copy that would be used to copy from. |
|
protectedvirtualinherited |
It assembles the final image and draws the widget.
e | The event received by this widget. |
|
virtual |
It updates the contents in the map display.
Reimplemented from te::qt::widgets::MapDisplay.
|
protectedvirtualinherited |
It resizes all canvas of map display.
|
protectedvirtualinherited |
This event handler receives widget resize events wich are passed in the event parameter.
e | The resize event. |
|
virtualinherited |
Returns the default value of the DPI. In this case, the values from the device will be acquired.
|
virtualinherited |
It will set the align rendering of objects into the map display. Just successive drawings will be affected by this modification.
h | The new horizontal align. |
v | The new vertical align. |
Implements te::map::AbstractMapDisplay.
|
virtualinherited |
Sets the map display background color.
color | The color. |
|
virtual |
It sets the world visible area and refreshes the contents in the map display.
If the given area is not proportional to the device width and height, the MapDisplay will change it in order to preserve the aspect ratio.
e | The world visible area. |
doRefresh | If true the display will refresh its contents. |
Reimplemented from te::qt::widgets::MapDisplay.
|
virtualinherited |
It sets the layer list to be showed in the Map Display.
layers | The layer list. |
Implements te::map::AbstractMapDisplay.
|
virtualinherited |
Overrides the values of the DPI that had been acquired from the device. This is done in order to make the scale be correctly computed and allows the correct computation of sizes in millimeters.
|
virtualinherited |
Sets the timeout interval in milliseconds to redraw on resize event.
msec | The timeout interval in milliseconds. |
|
virtualinherited |
Sets the resize policy to this map display.
policy | The resize policy. |
|
virtualinherited |
Defines the scale and calculates envelope based on the requested scale.
|
virtualinherited |
It sets a new Spatial Reference System to be used by the Map Display.
It will also convert the current envelope coordinates to the new SRS. This may cause changes to the world visible area. In this case, the extent will be updated and new internal transformation function will be calculated.
srid | The new Spatial Reference System to be used by the Map Display. |
doRefresh | If true the display will refresh its contents. |
Reimplemented from te::map::MapDisplay.
void te::qt::widgets::MultiThreadMapDisplay::setSynchronous | ( | bool | on | ) |
|
protectedslot |
|
virtual |
Transforms the given point, in screen coordinates, to a point in world coordinates.
p | A point in screen coordinates. |
Reimplemented from te::qt::widgets::MapDisplay.
void te::qt::widgets::MultiThreadMapDisplay::updateLayer | ( | te::map::AbstractLayerPtr | layer | ) |
|
private |
|
protectedinherited |
Background color.
Definition at line 314 of file MapDisplay.h.
|
protectedinherited |
This pixmap will be the result of all canvas pixmap drawing, i. e., the result of drawing all visible layers.
Definition at line 312 of file MapDisplay.h.
|
protectedinherited |
The draft pixmap can be used to draw some feedback on map display.
Definition at line 313 of file MapDisplay.h.
|
protectedinherited |
The display extent.
Definition at line 73 of file MapDisplay.h.
|
protectedinherited |
The display horizontal align.
Definition at line 76 of file MapDisplay.h.
|
protected |
The set of images built by each thread. It will be used to compose the final result, keeping the layer list order.
Definition at line 163 of file MultiThreadMapDisplay.h.
|
protectedinherited |
Timeout interval in milliseconds to redraw.
Definition at line 318 of file MapDisplay.h.
|
protectedinherited |
A flag that indicates if the map display is drawing.
Definition at line 319 of file MapDisplay.h.
|
protectedinherited |
A map that associates a layer to a canvas.
Definition at line 320 of file MapDisplay.h.
|
protectedinherited |
The layer list to be displayed.
Definition at line 74 of file MapDisplay.h.
|
protected |
Used to convert screen coordinates to world coordinates.
Definition at line 165 of file MultiThreadMapDisplay.h.
|
protectedinherited |
Stores the last size of map display on start resize event.
Definition at line 316 of file MapDisplay.h.
|
protectedinherited |
Overrided value of the DPI in the X-axis, so the scale can be correctly computed.
Definition at line 322 of file MapDisplay.h.
|
protectedinherited |
Overrided value of the DPI in the X-axis, so the scale can be correctly computed.
Definition at line 323 of file MapDisplay.h.
|
protectedinherited |
Resize policy for this map display.
Definition at line 315 of file MapDisplay.h.
|
mutableprotectedinherited |
Current calculated scale.
Definition at line 321 of file MapDisplay.h.
|
protected |
A flag that indicates if the map display will show drawing feedback.
Definition at line 164 of file MultiThreadMapDisplay.h.
|
protectedinherited |
The display SRS.
Definition at line 75 of file MapDisplay.h.
|
protected |
A flag that indicates if the map display is synchronous or asynchronous.
Definition at line 166 of file MultiThreadMapDisplay.h.
|
protected |
The set of threads used to draw the layer list.
Definition at line 162 of file MultiThreadMapDisplay.h.
|
protectedinherited |
Timer to execute redraw on resize action.
Definition at line 317 of file MapDisplay.h.
|
protectedinherited |
The display vertical align.
Definition at line 77 of file MapDisplay.h.
|
protected |
The set of visible layers.
Definition at line 161 of file MultiThreadMapDisplay.h.