te::qt::widgets::MapDisplay Class Reference

A widget to control the display of a set of layers. More...

#include <MapDisplay.h>

Inheritance diagram for te::qt::widgets::MapDisplay:
te::map::MapDisplay te::map::AbstractMapDisplay te::qt::widgets::MultiThreadMapDisplay

Public Types

enum  ResizePolicy { Fixed, Cut, Center }
 Defines the resize policy for map display. More...
 

Signals

void displayPaintEvent (QPainter *)
 
void displaySridChanged ()
 
void extentChanged ()
 

Public Member Functions

virtual QColor getBackgroundColor ()
 Gets the map display background color. More...
 
virtual double getDigitalization () const
 Gets the digitalization factor. 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::EnvelopegetExtent () 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 std::list< AbstractLayerPtr > getLayerList () const
 
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 setCurrentTool (te::qt::widgets::AbstractTool *tool, const bool &delPrevious=true)
 Updates the current tool being used on te::qt::widgets::MapDisplay. More...
 
virtual void setDigitalization (double digitalization)
 Sets the digitalization factor. 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 setLimitScale (double minScale, double maxScale)
 Defines the min scale and max scale. 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...
 
virtual QPointF transform (const QPointF &p)
 Transforms the given point, in screen coordinates, to a point in world coordinates. More...
 
virtual void updateLayer (te::map::AbstractLayerPtr layer, bool redraw=true)
 
Initializer Methods

Methods related to instantiation and destruction.

 MapDisplay (const QSize &size, QWidget *parent=0, Qt::WindowFlags f=0)
 It constructs an empty map display with the given dimensions which is a child of parent, with widget flags set to f. More...
 
 MapDisplay (QWidget *parent=0, Qt::WindowFlags f=0)
 
virtual ~MapDisplay ()
 Destructor. More...
 
AbstractMapDisplay Methods
virtual void changeData (te::map::AbstractLayerPtr, int nsrid=TE_UNKNOWN_SRS)
 
virtual void setExtent (te::gm::Envelope &e, bool doRefresh=true)
 It sets the world visible area and refreshes the contents in the map display. More...
 
virtual void refresh (bool redraw=false)
 It updates the contents in the map display. More...
 
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

virtual void onResizeTimeout ()
 

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::CanvasgetCanvas (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...
 
double m_digitalization
 Factor used in digitalization. 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...
 
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::list< te::map::AbstractLayerPtrm_layerList
 The layer list to be displayed. More...
 
double m_maxScale
 The maximum scale. More...
 
double m_minScale
 The minimun scale. 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...
 
int m_srid
 The display SRS. More...
 
QTimer * m_timer
 Timer to execute redraw on resize action. More...
 
te::qt::widgets::AbstractToolm_tool
 Pointer to the current tool being used. More...
 
te::map::AlignType m_vAlign
 The display vertical align. More...
 
Map Display Virtual Methods

Methods to configure the MapDisplay.

bool m_cancel
 

Private Member Functions

Copy Constructor and Assignment Operator

Copy constructor and assignment operator not allowed.

This signal is sent to others know that is drag enter event.

This signal is sent to others know that is drop event.

 MapDisplay (const MapDisplay &rhs)
 Copy constructor not allowed. More...
 
MapDisplayoperator= (const MapDisplay &rhs)
 Assignment operator not allowed. More...
 

Detailed Description

A widget to control the display of a set of layers.

See also
te::map::AbstractMapDisplay, te::map::MapDisplay

Definition at line 69 of file MapDisplay.h.

Member Enumeration Documentation

Defines the resize policy for map display.

Enumerator
Fixed 

Document-me!

Cut 

Document-me!

Center 

Document-me!

Definition at line 80 of file MapDisplay.h.

Constructor & Destructor Documentation

te::qt::widgets::MapDisplay::MapDisplay ( const QSize &  size,
QWidget *  parent = 0,
Qt::WindowFlags  f = 0 
)

It constructs an empty map display with the given dimensions which is a child of parent, with widget flags set to f.

Parameters
sizeThe map display size.
parentThe widget's parent.
fWidget window flags.
te::qt::widgets::MapDisplay::MapDisplay ( QWidget *  parent = 0,
Qt::WindowFlags  f = 0 
)
virtual te::qt::widgets::MapDisplay::~MapDisplay ( )
virtual

Destructor.

Reimplemented from te::map::MapDisplay.

te::qt::widgets::MapDisplay::MapDisplay ( const MapDisplay rhs)
private

Copy constructor not allowed.

Parameters
rhsThe right-hand-side copy that would be used to copy from.

Member Function Documentation

virtual void te::qt::widgets::MapDisplay::adjustExtent ( const QSize &  oldSize,
const QSize &  size 
)
protectedvirtual

It adjusts the map display extent based on resize policy.

Parameters
oldSizeThe size before the resize.
sizeThe size after the resize.
virtual void te::qt::widgets::MapDisplay::changeData ( te::map::AbstractLayerPtr  ,
int  nsrid = TE_UNKNOWN_SRS 
)
virtual
void te::qt::widgets::MapDisplay::displayPaintEvent ( QPainter *  )
signal

this signal is issued to others draw on this display.

void te::qt::widgets::MapDisplay::displaySridChanged ( )
signal

This signal is sent to others know that the projection was changed.

virtual void te::qt::widgets::MapDisplay::draw ( te::map::AbstractLayer layer,
QPainter &  painter 
)
protectedvirtual

It displays the given layer.

Parameters
layerThe layer that will be drawn.
painterThe painter that will composed the draw result.
Note
This method is called recursively for each child of the given layer.
It may need to retrieve data in order top display the layers.
void te::qt::widgets::MapDisplay::extentChanged ( )
signal

This signal is emitted when the map display extent changed.

virtual QColor te::qt::widgets::MapDisplay::getBackgroundColor ( )
virtual

Gets the map display background color.

Returns
The map display background color.
virtual te::qt::widgets::Canvas* te::qt::widgets::MapDisplay::getCanvas ( te::map::AbstractLayer layer,
int  type = QInternal::Pixmap 
)
protectedvirtual

It retrieves an associated canvas to the given layer.

Parameters
layerThe layer for wich we want to get an associated canvas.
Note
If there is not a canvas associated to the given layer, one will be created.
Returns
A canvas associated to the layer.
virtual double te::qt::widgets::MapDisplay::getDigitalization ( ) const
virtual

Gets the digitalization factor.

virtual QPixmap* te::qt::widgets::MapDisplay::getDisplayPixmap ( ) const
virtual

It returns the map display pixmap.

Returns
The map display pixmap.
Note
The caller of this method will NOT take the ownership of the returned pixmap.
virtual void te::qt::widgets::MapDisplay::getDPI ( int &  dpiX,
int &  dpiY 
) const
virtual

Returns the current values of the DPI in X-axis and in Y-axis.

virtual QPixmap* te::qt::widgets::MapDisplay::getDraftPixmap ( ) const
virtual

It returns the map display draft pixmap.

Returns
The map display draft pixmap.
Note
This pixmap can be used to draw some feedback on map display.
The caller of this method will NOT take the ownership of the returned pixmap.
virtual const te::gm::Envelope& te::map::MapDisplay::getExtent ( ) const
virtualinherited

It returns the world extent showned by the MapDisplay.

Returns
The world extent showned by the MapDisplay or NULL if none is set.
Note
The extent coordinates are in the Map Display SRS.

Implements te::map::AbstractMapDisplay.

virtual te::map::AlignType te::map::MapDisplay::getHAlign ( ) const
virtualinherited

It returns the MapDisplay current horizontal align.

Returns
The MapDisplay current horizontal align.

Implements te::map::AbstractMapDisplay.

unsigned int te::qt::widgets::MapDisplay::getHeight ( ) const
virtual

It returns the MapDisplay current height in pixels.

Returns
The MapDisplay current height in pixels.

Implements te::map::AbstractMapDisplay.

double te::qt::widgets::MapDisplay::getHeightMM ( ) const
virtual

It returns the MapDisplay current height in millimeters.

Returns
The MapDisplay current height in millimeters.

Implements te::map::AbstractMapDisplay.

virtual std::list<AbstractLayerPtr> te::map::MapDisplay::getLayerList ( ) const
virtualinherited
virtual double te::qt::widgets::MapDisplay::getScale ( ) const
virtual

Calculates and return the current scale.

virtual int te::map::MapDisplay::getSRID ( ) const
virtualinherited

It return the Spatial Reference System used by the Map Display.

Returns
The Spatial Reference System used by the Map Display.

Implements te::map::AbstractMapDisplay.

virtual te::map::AlignType te::map::MapDisplay::getVAlign ( ) const
virtualinherited

It returns the MapDisplay current vertical align.

Returns
The MapDisplay current vertical align.

Implements te::map::AbstractMapDisplay.

unsigned int te::qt::widgets::MapDisplay::getWidth ( ) const
virtual

It returns the MapDisplay current width in pixels.

Returns
The MapDisplay current width in pixels.

Implements te::map::AbstractMapDisplay.

double te::qt::widgets::MapDisplay::getWidthMM ( ) const
virtual

It returns the MapDisplay current width in millimeters.

Returns
The MapDisplay current width in millimeters.

Implements te::map::AbstractMapDisplay.

bool te::qt::widgets::MapDisplay::isDrawing ( ) const

Returns if the map display is drawing.

virtual void te::qt::widgets::MapDisplay::onResizeTimeout ( )
protectedvirtualslot
MapDisplay& te::qt::widgets::MapDisplay::operator= ( const MapDisplay rhs)
private

Assignment operator not allowed.

Parameters
rhsThe right-hand-side copy that would be used to copy from.
Returns
A reference to this object.
virtual void te::qt::widgets::MapDisplay::paintEvent ( QPaintEvent *  e)
protectedvirtual

It assembles the final image and draws the widget.

Parameters
eThe event received by this widget.
virtual void te::qt::widgets::MapDisplay::refresh ( bool  redraw = false)
virtual

It updates the contents in the map display.

Implements te::map::AbstractMapDisplay.

Reimplemented in te::qt::widgets::MultiThreadMapDisplay.

virtual void te::qt::widgets::MapDisplay::resizeAllCanvas ( )
protectedvirtual

It resizes all canvas of map display.

virtual void te::qt::widgets::MapDisplay::resizeEvent ( QResizeEvent *  e)
protectedvirtual

This event handler receives widget resize events wich are passed in the event parameter.

Parameters
eThe resize event.

Reimplemented in te::qt::widgets::MultiThreadMapDisplay.

virtual void te::qt::widgets::MapDisplay::restoreDPI ( )
virtual

Returns the default value of the DPI. In this case, the values from the device will be acquired.

virtual void te::map::MapDisplay::setAlign ( te::map::AlignType  h,
te::map::AlignType  v 
)
virtualinherited

It will set the align rendering of objects into the map display. Just successive drawings will be affected by this modification.

Parameters
hThe new horizontal align.
vThe new vertical align.
Note
It will not automatically redraw the objects, you must explicit call the setExtent method.

Implements te::map::AbstractMapDisplay.

virtual void te::qt::widgets::MapDisplay::setBackgroundColor ( const QColor &  color)
virtual

Sets the map display background color.

Parameters
colorThe color.
virtual void te::qt::widgets::MapDisplay::setCurrentTool ( te::qt::widgets::AbstractTool tool,
const bool &  delPrevious = true 
)
virtual

Updates the current tool being used on te::qt::widgets::MapDisplay.

Parameters
toolThe new te::qt::widgets::AbstractTool.
delPreviousTrue for delete the old tool.
Note
The class will take the ownership of the given pointer.
virtual void te::qt::widgets::MapDisplay::setDigitalization ( double  digitalization)
virtual

Sets the digitalization factor.

virtual void te::qt::widgets::MapDisplay::setExtent ( te::gm::Envelope e,
bool  doRefresh = true 
)
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.

Parameters
eThe world visible area.
doRefreshIf true the display will refresh its contents.
Precondition
The world coordinates must be in the map display SRS.

Reimplemented from te::map::MapDisplay.

Reimplemented in te::qt::widgets::MultiThreadMapDisplay.

virtual void te::map::MapDisplay::setLayerList ( const std::list< te::map::AbstractLayerPtr > &  layers)
virtualinherited

It sets the layer list to be showed in the Map Display.

Parameters
layersThe layer list.

Implements te::map::AbstractMapDisplay.

virtual void te::qt::widgets::MapDisplay::setLimitScale ( double  minScale,
double  maxScale 
)
virtual

Defines the min scale and max scale.

virtual void te::qt::widgets::MapDisplay::setOverrideDPI ( int  dpiX,
int  dpiY 
)
virtual

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.

virtual void te::qt::widgets::MapDisplay::setResizeInterval ( int  msec)
virtual

Sets the timeout interval in milliseconds to redraw on resize event.

Parameters
msecThe timeout interval in milliseconds.
virtual void te::qt::widgets::MapDisplay::setResizePolicy ( const ResizePolicy policy)
virtual

Sets the resize policy to this map display.

Parameters
policyThe resize policy.
virtual bool te::qt::widgets::MapDisplay::setScale ( const double &  scale)
virtual

Defines the scale and calculates envelope based on the requested scale.

virtual void te::qt::widgets::MapDisplay::setSRID ( const int &  srid,
bool  doRefresh = true 
)
virtual

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.

Parameters
sridThe new Spatial Reference System to be used by the Map Display.
doRefreshIf true the display will refresh its contents.

Reimplemented from te::map::MapDisplay.

virtual QPointF te::qt::widgets::MapDisplay::transform ( const QPointF &  p)
virtual

Transforms the given point, in screen coordinates, to a point in world coordinates.

Parameters
pA point in screen coordinates.
Returns
The point in world coordinates.
Note
This method will return a null point if the transform can not be done.

Reimplemented in te::qt::widgets::MultiThreadMapDisplay.

virtual void te::qt::widgets::MapDisplay::updateLayer ( te::map::AbstractLayerPtr  layer,
bool  redraw = true 
)
inlinevirtual

Reimplemented in te::qt::widgets::MultiThreadMapDisplay.

Definition at line 216 of file MapDisplay.h.

Member Data Documentation

QColor te::qt::widgets::MapDisplay::m_backgroundColor
protected

Background color.

Definition at line 345 of file MapDisplay.h.

bool te::map::AbstractMapDisplay::m_cancel
protectedinherited

Definition at line 172 of file AbstractMapDisplay.h.

double te::qt::widgets::MapDisplay::m_digitalization
protected

Factor used in digitalization.

Definition at line 357 of file MapDisplay.h.

QPixmap* te::qt::widgets::MapDisplay::m_displayPixmap
protected

This pixmap will be the result of all canvas pixmap drawing, i. e., the result of drawing all visible layers.

Definition at line 343 of file MapDisplay.h.

QPixmap* te::qt::widgets::MapDisplay::m_draftPixmap
protected

The draft pixmap can be used to draw some feedback on map display.

Definition at line 344 of file MapDisplay.h.

te::gm::Envelope te::map::MapDisplay::m_extent
protectedinherited

The display extent.

Definition at line 75 of file MapDisplay.h.

te::map::AlignType te::map::MapDisplay::m_hAlign
protectedinherited

The display horizontal align.

Definition at line 78 of file MapDisplay.h.

int te::qt::widgets::MapDisplay::m_interval
protected

Timeout interval in milliseconds to redraw.

Definition at line 349 of file MapDisplay.h.

bool te::qt::widgets::MapDisplay::m_isDrawing
protected

A flag that indicates if the map display is drawing.

Definition at line 350 of file MapDisplay.h.

std::list<te::map::AbstractLayerPtr> te::map::MapDisplay::m_layerList
protectedinherited

The layer list to be displayed.

Definition at line 76 of file MapDisplay.h.

double te::qt::widgets::MapDisplay::m_maxScale
protected

The maximum scale.

Definition at line 356 of file MapDisplay.h.

double te::qt::widgets::MapDisplay::m_minScale
protected

The minimun scale.

Definition at line 355 of file MapDisplay.h.

QSize te::qt::widgets::MapDisplay::m_oldSize
protected

Stores the last size of map display on start resize event.

Definition at line 347 of file MapDisplay.h.

int te::qt::widgets::MapDisplay::m_overridedDpiX
protected

Overrided value of the DPI in the X-axis, so the scale can be correctly computed.

Definition at line 353 of file MapDisplay.h.

int te::qt::widgets::MapDisplay::m_overridedDpiY
protected

Overrided value of the DPI in the X-axis, so the scale can be correctly computed.

Definition at line 354 of file MapDisplay.h.

ResizePolicy te::qt::widgets::MapDisplay::m_resizePolicy
protected

Resize policy for this map display.

Definition at line 346 of file MapDisplay.h.

double te::qt::widgets::MapDisplay::m_scale
mutableprotected

Current calculated scale.

Definition at line 352 of file MapDisplay.h.

int te::map::MapDisplay::m_srid
protectedinherited

The display SRS.

Definition at line 77 of file MapDisplay.h.

QTimer* te::qt::widgets::MapDisplay::m_timer
protected

Timer to execute redraw on resize action.

Definition at line 348 of file MapDisplay.h.

te::qt::widgets::AbstractTool* te::qt::widgets::MapDisplay::m_tool
protected

Pointer to the current tool being used.

Definition at line 359 of file MapDisplay.h.

te::map::AlignType te::map::MapDisplay::m_vAlign
protectedinherited

The display vertical align.

Definition at line 79 of file MapDisplay.h.


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