#include <qgslabel.h>
Public Types | |
enum | LabelField { Text = 0, Family, Size, SizeType, Bold, Italic, Underline, Color, XCoordinate, YCoordinate, XOffset, YOffset, Angle, Alignment, BufferEnabled, BufferSize, BufferColor, BufferBrush, BorderWidth, BorderColor, BorderStyle, MultilineEnabled, StrikeOut, LabelFieldCount } |
Public Member Functions | |
QgsLabel (const QgsFieldMap &fields) | |
~QgsLabel () | |
void | renderLabel (QPainter *painter, const QgsRectangle &viewExtent, QgsCoordinateTransform *coordinateTransform, const QgsMapToPixel *transform, QgsFeature &feature, bool selected, QgsLabelAttributes *classAttributes=0, double sizeScale=1., double rasterScaleFactor=1.0) |
render label | |
void | renderLabel (QgsRenderContext &renderContext, QgsFeature &feature, bool selected, QgsLabelAttributes *classAttributes=0) |
render label | |
void | readXML (const QDomNode &node) |
Reads the renderer configuration from an XML file. | |
void | writeXML (QDomNode &label_node, QDomDocument &document) const |
Writes the contents of the renderer to a configuration file. | |
void | addRequiredFields (QgsAttributeList &fields) const |
add vector of required fields to existing list of fields | |
void | setFields (const QgsFieldMap &fields) |
Set available fields. | |
QgsFieldMap & | fields (void) |
Available vector fields. | |
QgsLabelAttributes * | layerAttributes (void) |
Pointer to default attributes. | |
QgsLabelAttributes * | labelAttributes (void) |
Pointer to default attributes. | |
void | setLabelField (int attr, int fieldIndex) |
Set label field. | |
bool | setLabelFieldName (int attr, QString name) |
Set label field by name. | |
QString | labelField (int attr) const |
label field | |
QString | fieldValue (int attr, QgsFeature &feature) |
Get field value if : 1) field name is not empty 2) field exists 3) value is defined otherwise returns empty string. | |
void | setMinScale (float theMinScale) |
Accessor and mutator for the minimum scale member. | |
float | minScale () const |
void | setMaxScale (float theMaxScale) |
Accessor and mutator for the maximum scale member. | |
float | maxScale () const |
void | setScaleBasedVisibility (bool theVisibilityFlag) |
Accessor and mutator for the scale based visilibility flag. | |
bool | scaleBasedVisibility () const |
Private Member Functions | |
void | renderLabel (QgsRenderContext &renderContext, QgsPoint point, QString text, QFont font, QPen pen, int dx, int dy, double xoffset, double yoffset, double ang, int width, int height, int alignment) |
Does the actual rendering of a label at the given point. | |
bool | readLabelField (QDomElement &el, int attr, QString prefix) |
void | labelPoint (std::vector< labelpoint > &, QgsFeature &feature) |
Get label point for simple feature in map units. | |
unsigned char * | labelPoint (labelpoint &point, unsigned char *wkb, size_t wkblen) |
Get label point for the given feature in wkb format. | |
Private Attributes | |
QColor | mSelectionColor |
Color to draw selected features. | |
QgsLabelAttributes * | mLabelAttributes |
Default layer attributes. | |
QgsFieldMap | mField |
Available layer fields. | |
std::vector< QString > | mLabelField |
Label fields. | |
std::vector< int > | mLabelFieldIdx |
Label field indexes. | |
float | mMinScale |
Minimum scale at which this label should be displayed. | |
float | mMaxScale |
Maximum scale at which this label should be displayed. | |
bool | mScaleBasedVisibility |
A flag that tells us whether to use the above vars to restrict the label's visibility. | |
Classes | |
struct | labelpoint |
Label rendering properties can be either specified directly or in most cases determined dynamically based on the value of an attribute.
Definition at line 52 of file qgslabel.h.
enum QgsLabel::LabelField |
Definition at line 60 of file qgslabel.h.
QgsLabel::QgsLabel | ( | const QgsFieldMap & | fields | ) |
Definition at line 50 of file qgslabel.cpp.
References LabelFieldCount, mField, mLabelAttributes, and mLabelFieldIdx.
QgsLabel::~QgsLabel | ( | ) |
void QgsLabel::renderLabel | ( | QPainter * | painter, | |
const QgsRectangle & | viewExtent, | |||
QgsCoordinateTransform * | coordinateTransform, | |||
const QgsMapToPixel * | transform, | |||
QgsFeature & | feature, | |||
bool | selected, | |||
QgsLabelAttributes * | classAttributes = 0 , |
|||
double | sizeScale = 1. , |
|||
double | rasterScaleFactor = 1.0 | |||
) | [inline] |
render label
painter | painter to render label in | |
viewExtent | extent to render labels in | |
coordinateTransform | coordinate transformation to use | |
transform | transformation from coordinate to canvas pixels | |
feature | feature to label | |
selected | feature is selected | |
classAttributes | attributes to create label from | |
sizeScale | scale | |
rasterScaleFactor | raster scale |
Definition at line 106 of file qgslabel.h.
References QgsCoordinateTransform::destCRS(), QgsRenderContext::setCoordinateTransform(), QgsRenderContext::setExtent(), QgsRenderContext::setMapToPixel(), QgsRenderContext::setPainter(), QgsRenderContext::setRasterScaleFactor(), QgsRenderContext::setScaleFactor(), and QgsCoordinateTransform::sourceCrs().
Referenced by QgsVectorLayer::drawLabels(), and renderLabel().
void QgsLabel::renderLabel | ( | QgsRenderContext & | renderContext, | |
QgsFeature & | feature, | |||
bool | selected, | |||
QgsLabelAttributes * | classAttributes = 0 | |||
) |
render label
renderContext | the render context | |
feature | feature to render the label for | |
selected | feature is selected | |
classAttributes | attributes to create the label from |
Definition at line 89 of file qgslabel.cpp.
References QgsLabelAttributes::alignment(), Alignment, QgsLabelAttributes::angle(), Angle, QgsLabelAttributes::angleIsAuto(), QgsLabelAttributes::bold(), Bold, QgsLabelAttributes::color(), Color, QgsLabelAttributes::family(), Family, fieldValue(), QgsLabelAttributes::italic(), Italic, labelPoint(), QgsRenderContext::mapToPixel(), QgsLabelAttributes::MapUnits, mLabelAttributes, QgsLabelAttributes::multilineEnabled(), QgsLabelAttributes::offsetType(), QgsLabelAttributes::PointUnits, QgsRenderContext::rasterScaleFactor(), renderLabel(), QgsRenderContext::scaleFactor(), QgsLabelAttributes::selectedOnly(), QgsPoint::setX(), QgsPoint::setY(), QgsLabelAttributes::size(), Size, QgsLabelAttributes::sizeType(), SizeType, QgsLabelAttributes::strikeOut(), StrikeOut, QgsLabelAttributes::text(), Text, QgsMapToPixel::transform(), QgsLabelAttributes::underline(), Underline, QgsPoint::x(), XCoordinate, QgsLabelAttributes::xOffset(), XOffset, YCoordinate, QgsLabelAttributes::yOffset(), and YOffset.
void QgsLabel::readXML | ( | const QDomNode & | node | ) |
Reads the renderer configuration from an XML file.
node | the Dom node to read |
Definition at line 745 of file qgslabel.cpp.
References Alignment, QgsLabelAttributes::alignmentCode(), Angle, Bold, BufferColor, BufferEnabled, BufferSize, Color, Family, Italic, mLabelAttributes, MultilineEnabled, QgsDebugMsg, readLabelField(), QgsLabelAttributes::setAlignment(), QgsLabelAttributes::setAngle(), QgsLabelAttributes::setAutoAngle(), QgsLabelAttributes::setBold(), QgsLabelAttributes::setBufferColor(), QgsLabelAttributes::setBufferEnabled(), QgsLabelAttributes::setBufferSize(), QgsLabelAttributes::setColor(), QgsLabelAttributes::setFamily(), QgsLabelAttributes::setItalic(), QgsLabelAttributes::setMultilineEnabled(), QgsLabelAttributes::setOffset(), QgsLabelAttributes::setSelectedOnly(), QgsLabelAttributes::setSize(), QgsLabelAttributes::setStrikeOut(), QgsLabelAttributes::setText(), QgsLabelAttributes::setUnderline(), Size, SizeType, StrikeOut, Text, Underline, QgsLabelAttributes::unitsCode(), XCoordinate, XOffset, YCoordinate, and YOffset.
Referenced by QgsVectorLayer::readSymbology().
void QgsLabel::writeXML | ( | QDomNode & | label_node, | |
QDomDocument & | document | |||
) | const |
Writes the contents of the renderer to a configuration file.
Definition at line 1038 of file qgslabel.cpp.
References Alignment, QgsLabelAttributes::alignment(), QgsLabelAttributes::alignmentIsSet(), QgsLabelAttributes::alignmentName(), Angle, QgsLabelAttributes::angle(), MathUtils::angle(), QgsLabelAttributes::angleIsAuto(), QgsLabelAttributes::angleIsSet(), Bold, QgsLabelAttributes::bold(), QgsLabelAttributes::boldIsSet(), BufferColor, QgsLabelAttributes::bufferColor(), QgsLabelAttributes::bufferColorIsSet(), BufferEnabled, QgsLabelAttributes::bufferEnabled(), BufferSize, QgsLabelAttributes::bufferSize(), QgsLabelAttributes::bufferSizeIsSet(), QgsLabelAttributes::bufferSizeType(), Color, QgsLabelAttributes::color(), QgsLabelAttributes::colorIsSet(), Family, QgsLabelAttributes::family(), QgsLabelAttributes::familyIsSet(), Italic, QgsLabelAttributes::italic(), QgsLabelAttributes::italicIsSet(), labelField(), mLabelAttributes, mLabelFieldIdx, MultilineEnabled, QgsLabelAttributes::multilineEnabled(), QgsLabelAttributes::offsetIsSet(), QgsLabelAttributes::offsetType(), QgsLabelAttributes::selectedOnly(), Size, QgsLabelAttributes::size(), QgsLabelAttributes::sizeIsSet(), QgsLabelAttributes::sizeType(), SizeType, StrikeOut, QgsLabelAttributes::strikeOut(), QgsLabelAttributes::strikeOutIsSet(), Text, QgsLabelAttributes::text(), QgsLabelAttributes::textIsSet(), Underline, QgsLabelAttributes::underline(), QgsLabelAttributes::underlineIsSet(), QgsLabelAttributes::unitsName(), XCoordinate, XOffset, QgsLabelAttributes::xOffset(), YCoordinate, YOffset, and QgsLabelAttributes::yOffset().
Referenced by QgsVectorLayer::writeSymbology().
void QgsLabel::addRequiredFields | ( | QgsAttributeList & | fields | ) | const |
add vector of required fields to existing list of fields
Definition at line 474 of file qgslabel.cpp.
References LabelFieldCount, and mLabelFieldIdx.
Referenced by QgsVectorLayer::drawLabels().
void QgsLabel::setFields | ( | const QgsFieldMap & | fields | ) |
QgsFieldMap & QgsLabel::fields | ( | void | ) |
QgsLabelAttributes * QgsLabel::layerAttributes | ( | void | ) |
Pointer to default attributes.
Definition at line 528 of file qgslabel.cpp.
References mLabelAttributes.
QgsLabelAttributes * QgsLabel::labelAttributes | ( | void | ) |
Pointer to default attributes.
introduced in QGIS 1.4
Definition at line 523 of file qgslabel.cpp.
References mLabelAttributes.
Referenced by QgsQuickPrint::scaleTextLabels().
void QgsLabel::setLabelField | ( | int | attr, | |
int | fieldIndex | |||
) |
Set label field.
Definition at line 506 of file qgslabel.cpp.
References LabelFieldCount, and mLabelFieldIdx.
bool QgsLabel::setLabelFieldName | ( | int | attr, | |
QString | name | |||
) |
Set label field by name.
QString QgsLabel::labelField | ( | int | attr | ) | const |
label field
Definition at line 514 of file qgslabel.cpp.
References LabelFieldCount, mField, and mLabelFieldIdx.
Referenced by QgsVectorLayer::writeSymbology(), and writeXML().
QString QgsLabel::fieldValue | ( | int | attr, | |
QgsFeature & | feature | |||
) |
Get field value if : 1) field name is not empty 2) field exists 3) value is defined otherwise returns empty string.
Definition at line 69 of file qgslabel.cpp.
References QgsFeature::attributeMap(), and mLabelFieldIdx.
Referenced by renderLabel().
void QgsLabel::setMinScale | ( | float | theMinScale | ) |
Accessor and mutator for the minimum scale member.
Definition at line 1398 of file qgslabel.cpp.
References mMinScale.
Referenced by QgsVectorLayer::readSymbology().
float QgsLabel::minScale | ( | ) | const |
Definition at line 1403 of file qgslabel.cpp.
References mMinScale.
Referenced by QgsVectorLayer::drawLabels(), and QgsVectorLayer::writeSymbology().
void QgsLabel::setMaxScale | ( | float | theMaxScale | ) |
Accessor and mutator for the maximum scale member.
Definition at line 1408 of file qgslabel.cpp.
References mMaxScale.
Referenced by QgsVectorLayer::readSymbology().
float QgsLabel::maxScale | ( | ) | const |
Definition at line 1413 of file qgslabel.cpp.
References mMaxScale.
Referenced by QgsVectorLayer::drawLabels(), and QgsVectorLayer::writeSymbology().
void QgsLabel::setScaleBasedVisibility | ( | bool | theVisibilityFlag | ) |
Accessor and mutator for the scale based visilibility flag.
Definition at line 1388 of file qgslabel.cpp.
References mScaleBasedVisibility.
Referenced by QgsVectorLayer::readSymbology().
bool QgsLabel::scaleBasedVisibility | ( | ) | const |
Definition at line 1393 of file qgslabel.cpp.
References mScaleBasedVisibility.
Referenced by QgsVectorLayer::drawLabels(), and QgsVectorLayer::writeSymbology().
void QgsLabel::renderLabel | ( | QgsRenderContext & | renderContext, | |
QgsPoint | point, | |||
QString | text, | |||
QFont | font, | |||
QPen | pen, | |||
int | dx, | |||
int | dy, | |||
double | xoffset, | |||
double | yoffset, | |||
double | ang, | |||
int | width, | |||
int | height, | |||
int | alignment | |||
) | [private] |
Does the actual rendering of a label at the given point.
Definition at line 385 of file qgslabel.cpp.
References QgsLabelAttributes::bufferColor(), QgsLabelAttributes::bufferColorIsSet(), QgsLabelAttributes::bufferEnabled(), QgsLabelAttributes::bufferSize(), QgsLabelAttributes::bufferSizeIsSet(), QgsRenderContext::coordinateTransform(), M_PI, QgsRenderContext::mapToPixel(), mLabelAttributes, QgsLabelAttributes::multilineEnabled(), QgsRenderContext::painter(), QgsDebugMsg, QgsRenderContext::rasterScaleFactor(), QgsRenderContext::scaleFactor(), QgsMapToPixel::transform(), QgsCoordinateTransform::transform(), QgsPoint::x(), and QgsPoint::y().
bool QgsLabel::readLabelField | ( | QDomElement & | el, | |
int | attr, | |||
QString | prefix = "field" | |||
) | [private] |
Definition at line 710 of file qgslabel.cpp.
References mField, and mLabelFieldIdx.
Referenced by readXML().
void QgsLabel::labelPoint | ( | std::vector< labelpoint > & | points, | |
QgsFeature & | feature | |||
) | [private] |
Get label point for simple feature in map units.
Definition at line 533 of file qgslabel.cpp.
References QgsGeometry::asWkb(), QgsFeature::geometry(), QgsDebugMsg, QGis::WKBLineString, QGis::WKBLineString25D, QGis::WKBMultiLineString, QGis::WKBMultiLineString25D, QGis::WKBMultiPoint, QGis::WKBMultiPoint25D, QGis::WKBMultiPolygon, QGis::WKBMultiPolygon25D, QGis::WKBPoint, QGis::WKBPoint25D, QGis::WKBPolygon, QGis::WKBPolygon25D, QgsGeometry::wkbSize(), and QgsGeometry::wkbType().
Referenced by renderLabel().
unsigned char * QgsLabel::labelPoint | ( | labelpoint & | point, | |
unsigned char * | wkb, | |||
size_t | wkblen | |||
) | [private] |
Get label point for the given feature in wkb format.
Definition at line 581 of file qgslabel.cpp.
References QgsLabel::labelpoint::angle, QgsLabel::labelpoint::p, QgsDebugMsg, QgsPoint::set(), QGis::WKBLineString, QGis::WKBLineString25D, QGis::WKBPoint, QGis::WKBPoint25D, QGis::WKBPolygon, and QGis::WKBPolygon25D.
QColor QgsLabel::mSelectionColor [private] |
QgsLabelAttributes* QgsLabel::mLabelAttributes [private] |
Default layer attributes.
Definition at line 211 of file qgslabel.h.
Referenced by labelAttributes(), layerAttributes(), QgsLabel(), readXML(), renderLabel(), writeXML(), and ~QgsLabel().
QgsFieldMap QgsLabel::mField [private] |
Available layer fields.
Definition at line 214 of file qgslabel.h.
Referenced by fields(), labelField(), QgsLabel(), readLabelField(), and setFields().
std::vector<QString> QgsLabel::mLabelField [private] |
std::vector<int> QgsLabel::mLabelFieldIdx [private] |
Label field indexes.
Definition at line 220 of file qgslabel.h.
Referenced by addRequiredFields(), fieldValue(), labelField(), QgsLabel(), readLabelField(), setLabelField(), and writeXML().
float QgsLabel::mMinScale [private] |
Minimum scale at which this label should be displayed.
Definition at line 223 of file qgslabel.h.
Referenced by minScale(), and setMinScale().
float QgsLabel::mMaxScale [private] |
Maximum scale at which this label should be displayed.
Definition at line 225 of file qgslabel.h.
Referenced by maxScale(), and setMaxScale().
bool QgsLabel::mScaleBasedVisibility [private] |
A flag that tells us whether to use the above vars to restrict the label's visibility.
Definition at line 227 of file qgslabel.h.
Referenced by scaleBasedVisibility(), and setScaleBasedVisibility().