QGIS API Documentation
2.18.21-Las Palmas (9fba24a)
|
Main class to handle feature. More...
#include <feature.h>
Public Member Functions | |
FeaturePart (QgsLabelFeature *lf, const GEOSGeometry *geom) | |
Creates a new generic feature. More... | |
FeaturePart (const FeaturePart &other) | |
virtual | ~FeaturePart () |
Delete the feature. More... | |
void | addSizePenalty (int nbp, QList< LabelPosition *> &lPos, double bbx[4], double bby[4]) |
bool | alwaysShow () const |
Returns true if the feature's label should always been shown, even when it collides with other labels. More... | |
double | calculatePriority () const |
Calculates the priority for the feature. More... | |
int | createCandidates (QList< LabelPosition *> &lPos, double bboxMin[2], double bboxMax[2], PointSet *mapShape, RTree< LabelPosition *, double, 2, double > *candidates) |
Generic method to generate label candidates for the feature. More... | |
int | createCandidatesAlongLine (QList< LabelPosition *> &lPos, PointSet *mapShape) |
Generate candidates for line feature. More... | |
int | createCandidatesAlongLineNearMidpoint (QList< LabelPosition *> &lPos, PointSet *mapShape, double initialCost=0.0) |
Generate candidates for line feature, by trying to place candidates as close as possible to the line's midpoint. More... | |
int | createCandidatesAlongLineNearStraightSegments (QList< LabelPosition *> &lPos, PointSet *mapShape) |
Generate candidates for line feature, by trying to place candidates towards the middle of the longest straightish segments of the line. More... | |
int | createCandidatesAroundPoint (double x, double y, QList< LabelPosition *> &lPos, double angle) |
Generate candidates for point feature, located around a specified point. More... | |
int | createCandidatesAtOrderedPositionsOverPoint (double x, double y, QList< LabelPosition *> &lPos, double angle) |
Generates candidates following a prioritised list of predefined positions around a point. More... | |
int | createCandidatesForPolygon (QList< LabelPosition *> &lPos, PointSet *mapShape) |
Generate candidates for polygon features. More... | |
int | createCandidatesOverPoint (double x, double y, QList< LabelPosition *> &lPos, double angle) |
Generate one candidate over or offset the specified point. More... | |
int | createCurvedCandidatesAlongLine (QList< LabelPosition *> &lPos, PointSet *mapShape) |
Generate curved candidates for line features. More... | |
LabelPosition * | curvedPlacementAtOffset (PointSet *path_positions, double *path_distances, int &orientation, int index, double distance, bool &reversed, bool &flip) |
Returns the label position for a curved label at a specific offset along a path. More... | |
QgsLabelFeature * | feature () |
Returns the parent feature. More... | |
QgsFeatureId | featureId () const |
Returns the unique ID of the feature. More... | |
double | fixedAngle () const |
Returns the fixed angle for the feature's label. More... | |
double | getLabelDistance () const |
double | getLabelHeight () const |
double | getLabelWidth () const |
int | getNumSelfObstacles () const |
Get number of holes (inner rings) - they are considered as obstacles. More... | |
FeaturePart * | getSelfObstacle (int i) |
Get hole (inner ring) - considered as obstacle. More... | |
bool | hasFixedPosition () const |
Returns true if the feature's label has a fixed position. More... | |
bool | hasFixedRotation () const |
Returns true if the feature's label has a fixed rotation. More... | |
bool | hasSameLabelFeatureAs (FeaturePart *part) const |
Tests whether this feature part belongs to the same QgsLabelFeature as another feature part. More... | |
bool | isConnected (FeaturePart *p2) |
Check whether this part is connected with some other part. More... | |
bool | isObstacle () const |
Returns true if the feature should act as an obstacle to labels. More... | |
Layer * | layer () |
Returns the layer that feature belongs to. More... | |
bool | mergeWithFeaturePart (FeaturePart *other) |
Merge other (connected) part with this one and save the result in this part (other is unchanged). More... | |
bool | nextCharPosition (double charWidth, double segment_length, PointSet *path_positions, int &index, double &distance, double &start_x, double &start_y, double &end_x, double &end_y) const |
Returns true if the next char position is found. The referenced parameters are updated. More... | |
double | obstacleFactor () const |
Returns the feature's obstacle factor, which represents the penalty incurred for a label to overlap the feature. More... | |
double | repeatDistance () const |
Returns the distance between repeating labels for this feature. More... | |
bool | showUprightLabels () const |
Returns true if feature's label must be displayed upright. More... | |
Public Member Functions inherited from pal::PointSet | |
PointSet () | |
PointSet (int nbPoints, double *x, double *y) | |
virtual | ~PointSet () |
CHullBox * | compute_chull_bbox () |
bool | containsLabelCandidate (double x, double y, double width, double height, double alpha=0) const |
Tests whether a possible label candidate will fit completely within the shape. More... | |
bool | containsPoint (double x, double y) const |
Tests whether point set contains a specified point. More... | |
PointSet * | extractShape (int nbPtSh, int imin, int imax, int fps, int fpe, double fptx, double fpty) |
const GEOSGeometry * | geos () const |
Returns the point set's GEOS geometry. More... | |
void | getBoundingBox (double min[2], double max[2]) const |
void | getCentroid (double &px, double &py, bool forceInside=false) const |
int | getGeosType () const |
PointSet * | getHoleOf () |
Returns NULL if this isn't a hole. More... | |
int | getNumPoints () const |
void | getPointByDistance (double *d, double *ad, double dl, double *px, double *py) |
Get a point a set distance along a line geometry. More... | |
double | length () const |
Returns length of line geometry. More... | |
double | minDistanceToPoint (double px, double py, double *rx=nullptr, double *ry=nullptr) const |
Returns the squared minimum distance between the point set geometry and the point (px,py) Optionally, the nearest point is stored in (rx,ry). More... | |
Protected Member Functions | |
void | extractCoords (const GEOSGeometry *geom) |
read coordinates from a GEOS geom More... | |
Protected Member Functions inherited from pal::PointSet | |
PointSet (double x, double y) | |
PointSet (const PointSet &ps) | |
void | createGeosGeom () const |
void | deleteCoords () |
void | invalidateGeos () |
const GEOSPreparedGeometry * | preparedGeom () const |
Protected Attributes | |
QList< FeaturePart * > | mHoles |
QgsLabelFeature * | mLF |
Protected Attributes inherited from pal::PointSet | |
int * | cHull |
int | cHullSize |
PointSet * | holeOf |
GEOSGeometry * | mGeos |
bool | mOwnsGeom |
int | nbPoints |
PointSet * | parent |
int | type |
double * | x |
double | xmax |
double | xmin |
double * | y |
double | ymax |
double | ymin |
Additional Inherited Members | |
Static Public Member Functions inherited from pal::PointSet | |
static void | splitPolygons (QLinkedList< PointSet *> &shapes_toProcess, QLinkedList< PointSet *> &shapes_final, double xrm, double yrm) |
Split a concave shape into several convex shapes. More... | |
Main class to handle feature.
FeaturePart::FeaturePart | ( | QgsLabelFeature * | lf, |
const GEOSGeometry * | geom | ||
) |
Creates a new generic feature.
lf | a pointer for a feature which contains the spatial entites |
geom | a pointer to a GEOS geometry |
Definition at line 53 of file feature.cpp.
FeaturePart::FeaturePart | ( | const FeaturePart & | other | ) |
Definition at line 70 of file feature.cpp.
|
virtual |
Delete the feature.
Definition at line 81 of file feature.cpp.
void FeaturePart::addSizePenalty | ( | int | nbp, |
QList< LabelPosition *> & | lPos, | ||
double | bbx[4], | ||
double | bby[4] | ||
) |
Definition at line 1604 of file feature.cpp.
|
inline |
double FeaturePart::calculatePriority | ( | ) | const |
Calculates the priority for the feature.
This will be the feature's priority if set, otherwise the layer's default priority.
Definition at line 1719 of file feature.cpp.
int FeaturePart::createCandidates | ( | QList< LabelPosition *> & | lPos, |
double | bboxMin[2], | ||
double | bboxMax[2], | ||
PointSet * | mapShape, | ||
RTree< LabelPosition *, double, 2, double > * | candidates | ||
) |
Generic method to generate label candidates for the feature.
lPos | pointer to an array of candidates, will be filled by generated candidates |
bboxMin | min values of the map extent |
bboxMax | max values of the map extent |
mapShape | generate candidates for this spatial entity |
candidates | index for candidates |
Definition at line 1517 of file feature.cpp.
int FeaturePart::createCandidatesAlongLine | ( | QList< LabelPosition *> & | lPos, |
PointSet * | mapShape | ||
) |
Generate candidates for line feature.
lPos | pointer to an array of candidates, will be filled by generated candidates |
mapShape | a pointer to the line |
Definition at line 589 of file feature.cpp.
int FeaturePart::createCandidatesAlongLineNearMidpoint | ( | QList< LabelPosition *> & | lPos, |
PointSet * | mapShape, | ||
double | initialCost = 0.0 |
||
) |
Generate candidates for line feature, by trying to place candidates as close as possible to the line's midpoint.
Candidates can "cut corners" if it helps them place near this mid point.
lPos | pointer to an array of candidates, will be filled by generated candidates |
mapShape | a pointer to the line |
initialCost | initial cost for candidates generated using this method. If set, cost can be increased by a preset amount. |
Definition at line 822 of file feature.cpp.
int FeaturePart::createCandidatesAlongLineNearStraightSegments | ( | QList< LabelPosition *> & | lPos, |
PointSet * | mapShape | ||
) |
Generate candidates for line feature, by trying to place candidates towards the middle of the longest straightish segments of the line.
Segments closer to horizontal are preferred over vertical segments.
lPos | pointer to an array of candidates, will be filled by generated candidates |
mapShape | a pointer to the line |
Definition at line 602 of file feature.cpp.
int FeaturePart::createCandidatesAroundPoint | ( | double | x, |
double | y, | ||
QList< LabelPosition *> & | lPos, | ||
double | angle | ||
) |
Generate candidates for point feature, located around a specified point.
x | x coordinate of the point |
y | y coordinate of the point |
lPos | pointer to an array of candidates, will be filled by generated candidates |
angle | orientation of the label |
Definition at line 436 of file feature.cpp.
int FeaturePart::createCandidatesAtOrderedPositionsOverPoint | ( | double | x, |
double | y, | ||
QList< LabelPosition *> & | lPos, | ||
double | angle | ||
) |
Generates candidates following a prioritised list of predefined positions around a point.
x | x coordinate of the point |
y | y coordinate of the point |
lPos | pointer to an array of candidates, will be filled by generated candidate |
angle | orientation of the label |
Definition at line 310 of file feature.cpp.
int FeaturePart::createCandidatesForPolygon | ( | QList< LabelPosition *> & | lPos, |
PointSet * | mapShape | ||
) |
Generate candidates for polygon features.
lPos | pointer to an array of candidates, will be filled by generated candidates |
mapShape | a pointer to the polygon |
Definition at line 1311 of file feature.cpp.
int FeaturePart::createCandidatesOverPoint | ( | double | x, |
double | y, | ||
QList< LabelPosition *> & | lPos, | ||
double | angle | ||
) |
Generate one candidate over or offset the specified point.
x | x coordinate of the point |
y | y coordinate of the point |
lPos | pointer to an array of candidates, will be filled by generated candidate |
angle | orientation of the label |
Definition at line 231 of file feature.cpp.
int FeaturePart::createCurvedCandidatesAlongLine | ( | QList< LabelPosition *> & | lPos, |
PointSet * | mapShape | ||
) |
Generate curved candidates for line features.
lPos | pointer to an array of candidates, will be filled by generated candidates |
mapShape | a pointer to the line |
Definition at line 1143 of file feature.cpp.
LabelPosition * FeaturePart::curvedPlacementAtOffset | ( | PointSet * | path_positions, |
double * | path_distances, | ||
int & | orientation, | ||
int | index, | ||
double | distance, | ||
bool & | reversed, | ||
bool & | flip | ||
) |
Returns the label position for a curved label at a specific offset along a path.
path_positions | line path to place label on |
path_distances | array of distances to each segment on path |
orientation | can be 0 for automatic calculation of orientation, or -1/+1 for a specific label orientation |
index | |
distance | distance to offset label along curve by |
reversed | if true label is reversed from lefttoright to righttoleft |
flip | if true label is placed on the other side of the line |
Definition at line 969 of file feature.cpp.
|
protected |
read coordinates from a GEOS geom
Definition at line 89 of file feature.cpp.
|
inline |
QgsFeatureId FeaturePart::featureId | ( | ) | const |
Returns the unique ID of the feature.
Definition at line 155 of file feature.cpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
bool FeaturePart::hasSameLabelFeatureAs | ( | FeaturePart * | part | ) | const |
Tests whether this feature part belongs to the same QgsLabelFeature as another feature part.
part | part to compare to |
Definition at line 160 of file feature.cpp.
bool FeaturePart::isConnected | ( | FeaturePart * | p2 | ) |
Check whether this part is connected with some other part.
Definition at line 1661 of file feature.cpp.
|
inline |
Layer * FeaturePart::layer | ( | ) |
Returns the layer that feature belongs to.
Definition at line 150 of file feature.cpp.
bool FeaturePart::mergeWithFeaturePart | ( | FeaturePart * | other | ) |
Merge other (connected) part with this one and save the result in this part (other is unchanged).
Return true on success, false if the feature wasn't modified
Definition at line 1677 of file feature.cpp.
bool FeaturePart::nextCharPosition | ( | double | charWidth, |
double | segment_length, | ||
PointSet * | path_positions, | ||
int & | index, | ||
double & | distance, | ||
double & | start_x, | ||
double & | start_y, | ||
double & | end_x, | ||
double & | end_y | ||
) | const |
Returns true if the next char position is found. The referenced parameters are updated.
Definition at line 1756 of file feature.cpp.
|
inline |
|
inline |
bool FeaturePart::showUprightLabels | ( | ) | const |
Returns true if feature's label must be displayed upright.
Definition at line 1732 of file feature.cpp.
|
protected |
|
protected |