A widget to control the display of a set of layers. More...
#include <MapDisplay.h>
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 QPixmap * | getDisplayPixmap () const |
It returns the map display pixmap. 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 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 | 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 | 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 QPointF | transform (const QPointF &p) |
Transforms the given point, in screen coordinates, to a point in world coordinates. More... | |
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 () |
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::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... | |
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... | |
QSize | m_oldSize |
Stores the last size of map display on start resize event. More... | |
ResizePolicy | m_resizePolicy |
Resize policy for this map display. More... | |
int | m_srid |
The display SRS. More... | |
QTimer * | m_timer |
Timer to execute redraw on resize action. More... | |
te::map::AlignType | m_vAlign |
The display vertical align. More... | |
Private Member Functions | |
Copy Constructor and Assignment Operator | |
MapDisplay (const MapDisplay &rhs) | |
Copy constructor not allowed. More... | |
MapDisplay & | operator= (const MapDisplay &rhs) |
Assignment operator not allowed. More... | |
A widget to control the display of a set of layers.
Definition at line 66 of file MapDisplay.h.
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::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.
size | The map display size. |
parent | The widget's parent. |
f | Widget window flags. |
Definition at line 44 of file MapDisplay.cpp.
References m_backgroundColor, m_displayPixmap, m_draftPixmap, m_timer, and onResizeTimeout().
te::qt::widgets::MapDisplay::MapDisplay | ( | QWidget * | parent = 0 , |
Qt::WindowFlags | f = 0 |
||
) |
Definition at line 65 of file MapDisplay.cpp.
References m_backgroundColor, m_displayPixmap, m_draftPixmap, m_timer, and onResizeTimeout().
|
virtual |
|
private |
Copy constructor not allowed.
rhs | The right-hand-side copy that would be used to copy from. |
|
protectedvirtual |
It adjusts the map display extent based on resize policy.
oldSize | The size before the resize. |
size | The size after the resize. |
Definition at line 369 of file MapDisplay.cpp.
References Center, Cut, Fixed, te::gm::Envelope::getCenter(), te::gm::Envelope::m_llx, te::gm::Envelope::m_lly, te::gm::Envelope::m_urx, te::gm::Envelope::m_ury, te::gm::Coord2D::x, and te::gm::Coord2D::y.
|
virtual |
Definition at line 97 of file MapDisplay.cpp.
References te::map::Canvas::clear(), te::map::GetVisibleLayers(), TE_UNKNOWN_SRS, te::gm::Envelope::transform(), and te::gm::Envelope::Union().
|
signal |
this signal is issued to others draw on this display.
|
signal |
This signal is sent to others know that the projection was changed.
|
protectedvirtual |
It displays the given layer.
layer | The layer that will be drawn. |
painter | The painter that will composed the draw result. |
Definition at line 237 of file MapDisplay.cpp.
References te::map::AbstractLayer::draw(), te::common::TreeItem::getChild(), te::common::TreeItem::getChildrenCount(), te::qt::widgets::Canvas::getDevice(), te::map::AbstractLayer::getVisibility(), and te::map::NOT_VISIBLE.
|
signal |
This signal is emitted when the map display extent changed.
|
virtual |
Gets the map display background color.
Definition at line 333 of file MapDisplay.cpp.
|
protectedvirtual |
It retrieves an associated canvas to the given layer.
layer | The layer for wich we want to get an associated canvas. |
Definition at line 269 of file MapDisplay.cpp.
References te::qt::widgets::Canvas::calcAspectRatio().
|
virtual |
It returns the map display pixmap.
Definition at line 217 of file MapDisplay.cpp.
|
virtual |
It returns the map display draft pixmap.
Definition at line 222 of file MapDisplay.cpp.
Referenced by te::qt::widgets::ClippingWizardPage::drawGeom(), te::qt::widgets::MixtureModelWizardPage::drawMarks(), te::qt::widgets::ROIManagerWidget::drawROISet(), te::qt::widgets::TiePointLocatorWidget::drawTiePoints(), te::qt::widgets::TiePointsLocatorDialog::on_mapDisplay1_extentChanged(), te::qt::widgets::TiePointsLocatorDialog::on_mapDisplay2_extentChanged(), and te::qt::widgets::ROIManagerWidget::onROITreItemClicked().
|
virtualinherited |
It returns the world extent showned by the MapDisplay.
Implements te::map::AbstractMapDisplay.
Definition at line 63 of file MapDisplay.cpp.
Referenced by te::qt::widgets::ClippingWizardPage::drawGeom(), te::qt::widgets::MixtureModelWizardPage::drawMarks(), te::qt::widgets::ROIManagerWidget::drawROISet(), te::qt::widgets::TiePointLocatorWidget::drawTiePoints(), te::qt::widgets::TiePointsLocatorDialog::on_autoAcquireTiePointsPushButton_clicked(), te::qt::widgets::TiePointsLocatorDialog::on_mapDisplay1_extentChanged(), te::qt::widgets::TiePointsLocatorDialog::on_mapDisplay2_extentChanged(), te::qt::plugins::edit::ApplicationListener::onApplicationTriggered(), te::qt::af::BaseApplication::onLayerPanToSelectedOnMapDisplayTriggered(), te::qt::widgets::ROIManagerWidget::onROITreItemClicked(), te::qt::widgets::TiePointsLocatorDialog::refreshMapDisplay1(), te::qt::widgets::TiePointsLocatorDialog::refreshMapDisplay2(), and te::qt::widgets::TimeSliderWidget::TimeSliderWidget().
|
virtualinherited |
It returns the MapDisplay current horizontal align.
Implements te::map::AbstractMapDisplay.
Definition at line 47 of file MapDisplay.cpp.
|
virtual |
It returns the MapDisplay current height in pixels.
Implements te::map::AbstractMapDisplay.
Definition at line 196 of file MapDisplay.cpp.
Referenced by te::qt::plugins::edit::ApplicationListener::onApplicationTriggered().
|
virtual |
It returns the MapDisplay current height in millimeters.
Implements te::map::AbstractMapDisplay.
Definition at line 206 of file MapDisplay.cpp.
|
virtualinherited |
It return the Spatial Reference System used by the Map Display.
Implements te::map::AbstractMapDisplay.
Definition at line 73 of file MapDisplay.cpp.
Referenced by te::qt::widgets::Measure::Measure(), te::qt::af::BaseApplication::onLayerFitOnMapDisplayTriggered(), te::qt::af::BaseApplication::onLayerPanToSelectedOnMapDisplayTriggered(), te::qt::widgets::ROIManagerWidget::onPointPicked(), and te::qt::widgets::TimeSliderWidget::TimeSliderWidget().
|
virtualinherited |
It returns the MapDisplay current vertical align.
Implements te::map::AbstractMapDisplay.
Definition at line 52 of file MapDisplay.cpp.
|
virtual |
It returns the MapDisplay current width in pixels.
Implements te::map::AbstractMapDisplay.
Definition at line 191 of file MapDisplay.cpp.
Referenced by te::qt::plugins::edit::ApplicationListener::onApplicationTriggered().
|
virtual |
It returns the MapDisplay current width in millimeters.
Implements te::map::AbstractMapDisplay.
Definition at line 201 of file MapDisplay.cpp.
bool te::qt::widgets::MapDisplay::isDrawing | ( | ) | const |
Returns if the map display is drawing.
Definition at line 343 of file MapDisplay.cpp.
|
protectedvirtualslot |
Definition at line 348 of file MapDisplay.cpp.
Referenced by MapDisplay().
|
private |
Assignment operator not allowed.
rhs | The right-hand-side copy that would be used to copy from. |
|
protectedvirtual |
It assembles the final image and draws the widget.
e | The event received by this widget. |
Definition at line 294 of file MapDisplay.cpp.
|
virtual |
It updates the contents in the map display.
Implements te::map::AbstractMapDisplay.
Reimplemented in te::qt::widgets::MultiThreadMapDisplay.
Definition at line 170 of file MapDisplay.cpp.
|
protectedvirtual |
It resizes all canvas of map display.
Definition at line 287 of file MapDisplay.cpp.
|
protectedvirtual |
This event handler receives widget resize events wich are passed in the event parameter.
e | The resize event. |
Definition at line 304 of file MapDisplay.cpp.
|
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.
Definition at line 57 of file MapDisplay.cpp.
|
virtual |
Sets the map display background color.
color | The color. |
Definition at line 338 of file MapDisplay.cpp.
Referenced by te::qt::af::MapDisplay::MapDisplay().
|
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::map::MapDisplay.
Reimplemented in te::qt::widgets::MultiThreadMapDisplay.
Definition at line 150 of file MapDisplay.cpp.
References te::qt::widgets::Canvas::calcAspectRatio(), te::qt::widgets::Canvas::clear(), te::map::MapDisplay::setExtent(), and te::qt::widgets::Canvas::setWindow().
Referenced by te::qt::widgets::MixtureModelDialog::MixtureModelDialog(), te::qt::af::BaseApplication::onLayerFitOnMapDisplayTriggered(), te::qt::widgets::TiePointsLocatorDialog::refreshMapDisplay1(), te::qt::widgets::TiePointsLocatorDialog::refreshMapDisplay2(), te::qt::widgets::TiePointsLocatorDialog::TiePointsLocatorDialog(), and te::qt::widgets::TimeSliderWidget::TimeSliderWidget().
|
virtualinherited |
It sets the layer list to be showed in the Map Display.
layers | The layer list. |
Implements te::map::AbstractMapDisplay.
Definition at line 42 of file MapDisplay.cpp.
Referenced by te::qt::widgets::MixtureModelDialog::MixtureModelDialog(), and te::qt::widgets::TiePointsLocatorDialog::TiePointsLocatorDialog().
|
virtual |
Sets the timeout interval in milliseconds to redraw on resize event.
msec | The timeout interval in milliseconds. |
Definition at line 232 of file MapDisplay.cpp.
|
virtual |
Sets the resize policy to this map display.
policy | The resize policy. |
Definition at line 227 of file MapDisplay.cpp.
Referenced by te::qt::widgets::EyeBirdMapDisplayWidget::EyeBirdMapDisplayWidget(), te::qt::af::BaseApplication::makeDialog(), te::qt::widgets::MixtureModelDialog::MixtureModelDialog(), te::qt::widgets::RasterNavigatorWidget::RasterNavigatorWidget(), te::qt::widgets::TiePointsLocatorDialog::TiePointsLocatorDialog(), and te::qt::widgets::ZoomInMapDisplayWidget::ZoomInMapDisplayWidget().
|
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.
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.
Definition at line 211 of file MapDisplay.cpp.
References te::map::MapDisplay::setSRID().
Referenced by te::qt::af::MapDisplay::MapDisplay(), te::qt::widgets::MixtureModelDialog::MixtureModelDialog(), te::qt::af::BaseApplication::onLayerFitOnMapDisplayTriggered(), te::qt::widgets::TiePointsLocatorDialog::TiePointsLocatorDialog(), and te::qt::widgets::TimeSliderWidget::TimeSliderWidget().
|
virtual |
Transforms the given point, in screen coordinates, to a point in world coordinates.
p | A point in screen coordinates. |
Reimplemented in te::qt::widgets::MultiThreadMapDisplay.
Definition at line 321 of file MapDisplay.cpp.
References te::qt::widgets::Canvas::getMatrix().
|
protected |
|
protected |
This pixmap will be the result of all canvas pixmap drawing, i. e., the result of drawing all visible layers.
Definition at line 286 of file MapDisplay.h.
Referenced by MapDisplay().
|
protected |
The draft pixmap can be used to draw some feedback on map display.
Definition at line 287 of file MapDisplay.h.
Referenced by MapDisplay().
|
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 |
Timeout interval in milliseconds to redraw.
Definition at line 292 of file MapDisplay.h.
|
protected |
A flag that indicates if the map display is drawing.
Definition at line 293 of file MapDisplay.h.
|
protected |
A map that associates a layer to a canvas.
Definition at line 294 of file MapDisplay.h.
|
protectedinherited |
The layer list to be displayed.
Definition at line 74 of file MapDisplay.h.
|
protected |
Stores the last size of map display on start resize event.
Definition at line 290 of file MapDisplay.h.
|
protected |
Resize policy for this map display.
Definition at line 289 of file MapDisplay.h.
|
protectedinherited |
The display SRS.
Definition at line 75 of file MapDisplay.h.
|
protected |
Timer to execute redraw on resize action.
Definition at line 291 of file MapDisplay.h.
Referenced by MapDisplay().
|
protectedinherited |
The display vertical align.
Definition at line 77 of file MapDisplay.h.