Quantum GIS API Documentation
1.7.4
|
A class to render labels. More...
#include <qgslabel.h>
Classes | |
struct | labelpoint |
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 () | |
Q_DECL_DEPRECATED 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. | |
Q_DECL_DEPRECATED 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. |
A class to render labels.
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 fields(), LabelFieldCount, mField, mLabelAttributes, and mLabelFieldIdx.
Definition at line 64 of file qgslabel.cpp.
References mLabelAttributes.
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().
QgsFieldMap & QgsLabel::fields | ( | void | ) |
Available vector fields.
Definition at line 501 of file qgslabel.cpp.
References mField.
Referenced by QgsLabel(), and setFields().
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().
QgsLabelAttributes * QgsLabel::labelAttributes | ( | void | ) |
Pointer to default attributes.
Definition at line 523 of file qgslabel.cpp.
References mLabelAttributes.
Referenced by QgsQuickPrint::scaleTextLabels().
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().
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.
QgsLabelAttributes * QgsLabel::layerAttributes | ( | void | ) |
Pointer to default attributes.
Definition at line 528 of file qgslabel.cpp.
References mLabelAttributes.
float QgsLabel::maxScale | ( | ) | const |
Definition at line 1413 of file qgslabel.cpp.
References mMaxScale.
Referenced by QgsVectorLayer::drawLabels(), and QgsVectorLayer::writeSymbology().
float QgsLabel::minScale | ( | ) | const |
Definition at line 1403 of file qgslabel.cpp.
References mMinScale.
Referenced by QgsVectorLayer::drawLabels(), and QgsVectorLayer::writeSymbology().
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::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().
Q_DECL_DEPRECATED 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 Alignment, QgsLabelAttributes::alignment(), Angle, QgsLabelAttributes::angle(), QgsLabelAttributes::angleIsAuto(), Bold, QgsLabelAttributes::bold(), Color, QgsLabelAttributes::color(), Family, QgsLabelAttributes::family(), fieldValue(), Italic, QgsLabelAttributes::italic(), labelPoint(), QgsRenderContext::mapToPixel(), QgsLabelAttributes::MapUnits, mLabelAttributes, QgsLabelAttributes::multilineEnabled(), QgsLabelAttributes::offsetType(), QgsLabelAttributes::PointUnits, QgsRenderContext::rasterScaleFactor(), renderLabel(), QgsRenderContext::scaleFactor(), QgsLabelAttributes::selectedOnly(), QgsPoint::setX(), QgsPoint::setY(), Size, QgsLabelAttributes::size(), SizeType, QgsLabelAttributes::sizeType(), StrikeOut, QgsLabelAttributes::strikeOut(), Text, QgsLabelAttributes::text(), QgsMapToPixel::transform(), Underline, QgsLabelAttributes::underline(), QgsPoint::x(), XCoordinate, XOffset, QgsLabelAttributes::xOffset(), YCoordinate, YOffset, and QgsLabelAttributes::yOffset().
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::scaleBasedVisibility | ( | ) | const |
Definition at line 1393 of file qgslabel.cpp.
References mScaleBasedVisibility.
Referenced by QgsVectorLayer::drawLabels(), and QgsVectorLayer::writeSymbology().
void QgsLabel::setFields | ( | const QgsFieldMap & | fields | ) |
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.
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().
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().
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().
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, MathUtils::angle(), QgsLabelAttributes::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(), SizeType, QgsLabelAttributes::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().
QgsFieldMap QgsLabel::mField [private] |
Available layer fields.
Definition at line 213 of file qgslabel.h.
Referenced by fields(), labelField(), QgsLabel(), readLabelField(), and setFields().
QgsLabelAttributes* QgsLabel::mLabelAttributes [private] |
Default layer attributes.
Definition at line 210 of file qgslabel.h.
Referenced by labelAttributes(), layerAttributes(), QgsLabel(), readXML(), renderLabel(), writeXML(), and ~QgsLabel().
std::vector<QString> QgsLabel::mLabelField [private] |
Label fields.
Definition at line 216 of file qgslabel.h.
std::vector<int> QgsLabel::mLabelFieldIdx [private] |
Label field indexes.
Definition at line 219 of file qgslabel.h.
Referenced by addRequiredFields(), fieldValue(), labelField(), QgsLabel(), readLabelField(), setLabelField(), and writeXML().
float QgsLabel::mMaxScale [private] |
Maximum scale at which this label should be displayed.
Definition at line 224 of file qgslabel.h.
Referenced by maxScale(), and setMaxScale().
float QgsLabel::mMinScale [private] |
Minimum scale at which this label should be displayed.
Definition at line 222 of file qgslabel.h.
Referenced by minScale(), and setMinScale().
bool QgsLabel::mScaleBasedVisibility [private] |
A flag that tells us whether to use the above vars to restrict the label's visibility.
Definition at line 226 of file qgslabel.h.
Referenced by scaleBasedVisibility(), and setScaleBasedVisibility().
QColor QgsLabel::mSelectionColor [private] |
Color to draw selected features.
Definition at line 207 of file qgslabel.h.