#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().
1.5.6