QGIS API Documentation
2.8.2-Wien
|
A class for drawing transient features (e.g. More...
#include <qgsrubberband.h>
Public Types | |
enum | IconType { ICON_NONE, ICON_CROSS, ICON_X, ICON_BOX, ICON_CIRCLE, ICON_FULL_BOX } |
Icons. More... |
Public Member Functions | |
QgsRubberBand (QgsMapCanvas *mapCanvas, QGis::GeometryType geometryType=QGis::Line) | |
Creates a new RubberBand. | |
QgsRubberBand (QgsMapCanvas *mapCanvas, bool isPolygon) | |
Creates a new RubberBand. | |
~QgsRubberBand () | |
void | addGeometry (QgsGeometry *geom, QgsVectorLayer *layer) |
Add the geometry of an existing feature to a rubberband This is useful for multi feature highlighting. | |
void | addPoint (const QgsPoint &p, bool doUpdate=true, int geometryIndex=0) |
Add a vertex to the rubberband and update canvas. | |
QgsGeometry * | asGeometry () |
Returns the rubberband as a Geometry. | |
const QgsPoint * | getPoint (int i, int j=0) const |
Return vertex. | |
void | movePoint (const QgsPoint &p, int geometryIndex=0) |
Moves the rubber band point specified by index. | |
void | movePoint (int index, const QgsPoint &p, int geometryIndex=0) |
Moves the rubber band point specified by index. | |
int | numberOfVertices () const |
Returns count of vertices in all lists of mPoint. | |
int | partSize (int geometryIndex) const |
Returns number of vertices in feature part. | |
void | removeLastPoint (int geometryIndex=0, bool doUpdate=true) |
Removes the last point. | |
void | removePoint (int index=0, bool doUpdate=true, int geometryIndex=0) |
Remove a vertex from the rubberband and (optionally) update canvas. | |
void | reset (QGis::GeometryType geometryType=QGis::Line) |
Clears all the geometries in this rubberband. | |
void | reset (bool isPolygon) |
void | setBorderColor (const QColor &color) |
Set the border color for the rubberband. | |
void | setBrushStyle (Qt::BrushStyle brushStyle) |
Set the style of the brush. | |
void | setColor (const QColor &color) |
Set the color for the rubberband. | |
void | setFillColor (const QColor &color) |
Set the fill color for the rubberband. | |
void | setIcon (IconType icon) |
Set the icon type to highlight point geometries. | |
void | setIconSize (int iconSize) |
Set the size of the point icons. | |
void | setLineStyle (Qt::PenStyle penStyle) |
Set the style of the line. | |
void | setToCanvasRectangle (const QRect &rect) |
Sets this rubber band to a map canvas rectangle. | |
void | setToGeometry (QgsGeometry *geom, QgsVectorLayer *layer) |
Sets this rubber band to the geometry of an existing feature. | |
void | setTranslationOffset (double dx, double dy) |
Adds translation to original coordinates (all in map coordinates) | |
void | setWidth (int width) |
Set the width of the line. | |
int | size () const |
Returns number of geometries. | |
virtual void | updatePosition () override |
called on changed extent or resize event to update position of the item | |
Public Member Functions inherited from QgsMapCanvasItem | |
virtual QRectF | boundingRect () const override |
default implementation for canvas items | |
QgsRectangle | rect () const |
returns canvas item rectangle in map units | |
Q_DECL_DEPRECATED void | setPanningOffset (const QPoint &point) |
sets current offset, to be called from QgsMapCanvas | |
void | setRect (const QgsRectangle &r, bool resetRotation=true) |
sets canvas item rectangle in map units | |
QPointF | toCanvasCoordinates (const QgsPoint &point) const |
transformation from map coordinates to screen coordinates | |
QgsPoint | toMapCoordinates (const QPoint &point) const |
transformation from screen coordinates to map coordinates |
Protected Member Functions | |
virtual void | paint (QPainter *p) override |
void | updateRect () |
recalculates needed rectangle | |
Protected Member Functions inherited from QgsMapCanvasItem | |
QgsMapCanvasItem (QgsMapCanvas *mapCanvas) | |
protected constructor: cannot be constructed directly | |
virtual | ~QgsMapCanvasItem () |
virtual void | paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0) override |
paint function called by map canvas | |
bool | setRenderContextVariables (QPainter *p, QgsRenderContext &context) const |
Sets render context parameters. | |
void | updateCanvas () |
schedules map canvas for repaint |
Additional Inherited Members | |
Protected Attributes inherited from QgsMapCanvasItem | |
QSizeF | mItemSize |
cached size of the item (to return in boundingRect()) | |
QgsMapCanvas * | mMapCanvas |
pointer to map canvas | |
QPoint | mPanningOffset |
offset from normal position due current panning operation, used when converting map coordinates to move map canvas items | |
QgsRectangle | mRect |
cached canvas item rectangle in map coordinates encodes position (xmin,ymax) and size (width/height) used to re-position and re-size the item on zoom/pan while waiting for the renderer to complete. | |
double | mRectRotation |
A class for drawing transient features (e.g.
The QgsRubberBand class provides a transparent overlay widget for tracking the mouse while drawing polylines or polygons.
digitising lines) on the map. It may be used
Definition at line 32 of file qgsrubberband.h.
Icons.
Definition at line 37 of file qgsrubberband.h.
QgsRubberBand::QgsRubberBand | ( | QgsMapCanvas * | mapCanvas, |
QGis::GeometryType | geometryType = QGis::Line |
||
) |
Creates a new RubberBand.
mapCanvas | The map canvas to draw onto. It's CRS will be used map points onto screen coordinates. |
geometryType | Defines how the data should be drawn onto the screen. (Use QGis::Line, QGis::Polygon or QGis::Point) |
Definition at line 30 of file qgsrubberband.cpp.
QgsRubberBand::QgsRubberBand | ( | QgsMapCanvas * | mapCanvas, |
bool | isPolygon | ||
) |
Creates a new RubberBand.
mapCanvas | The map canvas to draw onto. It's CRS will be used map points onto screen coordinates. |
isPolygon | true: draw as (multi-)polygon, false draw as (multi-)linestring |
Definition at line 47 of file qgsrubberband.cpp.
QgsRubberBand::~QgsRubberBand | ( | ) |
Definition at line 73 of file qgsrubberband.cpp.
void QgsRubberBand::addGeometry | ( | QgsGeometry * | geom, |
QgsVectorLayer * | layer | ||
) |
Add the geometry of an existing feature to a rubberband This is useful for multi feature highlighting.
As of 2.0, this method does not change the GeometryType any more. You need to set the GeometryType of the rubberband explicitly by calling reset or setToGeometry with appropriate arguments. setToGeometry is also to be preferred for backwards-compatibility.
geom | the geometry object. Will be treated as a collection of vertices. |
layer | the layer containing the feature, used for coord transformation to map crs. In case of 0 pointer, the coordinates are not going to be transformed. |
Definition at line 274 of file qgsrubberband.cpp.
void QgsRubberBand::addPoint | ( | const QgsPoint & | p, |
bool | doUpdate = true , |
||
int | geometryIndex = 0 |
||
) |
Add a vertex to the rubberband and update canvas.
The rendering of the vertex depends on the current GeometryType and icon. If adding more points consider using update=false for better performance
p | The vertex/point to add |
doUpdate | Should the map canvas be updated immediately? |
geometryIndex | The index of the feature part (in case of multipart geometries) |
Add a point to the shape being created.
Definition at line 155 of file qgsrubberband.cpp.
QgsGeometry * QgsRubberBand::asGeometry | ( | ) |
Returns the rubberband as a Geometry.
Definition at line 625 of file qgsrubberband.cpp.
const QgsPoint * QgsRubberBand::getPoint | ( | int | i, |
int | j = 0 |
||
) | const |
Return vertex.
i | The geometry index |
j | The vertex index within geometry i |
Definition at line 617 of file qgsrubberband.cpp.
void QgsRubberBand::movePoint | ( | const QgsPoint & | p, |
int | geometryIndex = 0 |
||
) |
Moves the rubber band point specified by index.
Note that if the rubber band is not used to track the last mouse position, the first point of the rubber band has two vertices
Update the line between the last added point and the mouse position.
Definition at line 226 of file qgsrubberband.cpp.
void QgsRubberBand::movePoint | ( | int | index, |
const QgsPoint & | p, | ||
int | geometryIndex = 0 |
||
) |
Moves the rubber band point specified by index.
Note that if the rubber band is not used to track the last mouse position, the first point of the rubber band has two vertices
Definition at line 244 of file qgsrubberband.cpp.
int QgsRubberBand::numberOfVertices | ( | ) | const |
Returns count of vertices in all lists of mPoint.
Definition at line 602 of file qgsrubberband.cpp.
|
overrideprotectedvirtual |
Draw the shape in response to an update event.
Implements QgsMapCanvasItem.
Definition at line 450 of file qgsrubberband.cpp.
int QgsRubberBand::partSize | ( | int | geometryIndex | ) | const |
Returns number of vertices in feature part.
geometryIndex | The index of the feature part (in case of multipart geometries) |
Definition at line 596 of file qgsrubberband.cpp.
void QgsRubberBand::removeLastPoint | ( | int | geometryIndex = 0 , |
bool | doUpdate = true |
||
) |
Removes the last point.
Most useful in connection with undo operations
Definition at line 218 of file qgsrubberband.cpp.
void QgsRubberBand::removePoint | ( | int | index = 0 , |
bool | doUpdate = true , |
||
int | geometryIndex = 0 |
||
) |
Remove a vertex from the rubberband and (optionally) update canvas.
index | The index of the vertex/point to remove, negative indexes start at end |
doUpdate | Should the map canvas be updated immediately? |
geometryIndex | The index of the feature part (in case of multipart geometries) |
Definition at line 192 of file qgsrubberband.cpp.
void QgsRubberBand::reset | ( | QGis::GeometryType | geometryType = QGis::Line | ) |
Clears all the geometries in this rubberband.
Sets the representation type according to geometryType.
geometryType | Defines how the data should be drawn onto the screen. (Use QGis::Line, QGis::Polygon or QGis::Point) |
Remove all points from the shape being created.
Definition at line 136 of file qgsrubberband.cpp.
void QgsRubberBand::reset | ( | bool | isPolygon | ) |
isPolygon | true: draw as (multi-)polygon, false draw as (multi-)linestring |
Definition at line 144 of file qgsrubberband.cpp.
void QgsRubberBand::setBorderColor | ( | const QColor & | color | ) |
Set the border color for the rubberband.
color | The color used to render this rubberband |
Set the outline
Definition at line 98 of file qgsrubberband.cpp.
void QgsRubberBand::setBrushStyle | ( | Qt::BrushStyle | brushStyle | ) |
Set the style of the brush.
Definition at line 128 of file qgsrubberband.cpp.
void QgsRubberBand::setColor | ( | const QColor & | color | ) |
Set the color for the rubberband.
color | The color used to render this rubberband |
Set the outline and fill color.
Definition at line 80 of file qgsrubberband.cpp.
void QgsRubberBand::setFillColor | ( | const QColor & | color | ) |
Set the fill color for the rubberband.
color | The color used to render this rubberband |
Set the fill color.
Definition at line 89 of file qgsrubberband.cpp.
void QgsRubberBand::setIcon | ( | IconType | icon | ) |
Set the icon type to highlight point geometries.
icon | The icon to visualize point geometries |
Definition at line 113 of file qgsrubberband.cpp.
void QgsRubberBand::setIconSize | ( | int | iconSize | ) |
Set the size of the point icons.
Definition at line 118 of file qgsrubberband.cpp.
void QgsRubberBand::setLineStyle | ( | Qt::PenStyle | penStyle | ) |
Set the style of the line.
Definition at line 123 of file qgsrubberband.cpp.
void QgsRubberBand::setToCanvasRectangle | ( | const QRect & | rect | ) |
Sets this rubber band to a map canvas rectangle.
rect | rectangle in canvas coordinates |
Definition at line 427 of file qgsrubberband.cpp.
void QgsRubberBand::setToGeometry | ( | QgsGeometry * | geom, |
QgsVectorLayer * | layer | ||
) |
Sets this rubber band to the geometry of an existing feature.
This is useful for feature highlighting. In contrast to addGeometry, this method does also change the geometry type of the rubberband.
geom | the geometry object |
layer | the layer containing the feature, used for coord transformation to map crs. In case of 0 pointer, the coordinates are not going to be transformed. |
Definition at line 262 of file qgsrubberband.cpp.
void QgsRubberBand::setTranslationOffset | ( | double | dx, |
double | dy | ||
) |
Adds translation to original coordinates (all in map coordinates)
dx | x translation |
dy | y translation |
Definition at line 584 of file qgsrubberband.cpp.
void QgsRubberBand::setWidth | ( | int | width | ) |
Set the width of the line.
Outline width for polygon.
width | The width for any lines painted for this rubberband |
Set the outline width.
Definition at line 108 of file qgsrubberband.cpp.
int QgsRubberBand::size | ( | void | ) | const |
Returns number of geometries.
Definition at line 591 of file qgsrubberband.cpp.
|
overridevirtual |
called on changed extent or resize event to update position of the item
Reimplemented from QgsMapCanvasItem.
Definition at line 574 of file qgsrubberband.cpp.
|
protected |
recalculates needed rectangle
Definition at line 529 of file qgsrubberband.cpp.