QGeoRectangle Class

The QGeoRectangle class defines a rectangular geographic area. More...

Header: #include <QGeoRectangle>
CMake: find_package(Qt6 REQUIRED COMPONENTS Positioning)
target_link_libraries(mytarget PRIVATE Qt6::Positioning)
qmake: QT += positioning
Inherits: QGeoShape

Properties

Public Functions

QGeoRectangle()
QGeoRectangle(const QGeoShape &other)
QGeoRectangle(const QList<QGeoCoordinate> &coordinates)
QGeoRectangle(const QGeoCoordinate &topLeft, const QGeoCoordinate &bottomRight)
QGeoRectangle(const QGeoCoordinate &center, double degreesWidth, double degreesHeight)
QGeoRectangle(const QGeoRectangle &other)
~QGeoRectangle()
QGeoCoordinate bottomLeft() const
QGeoCoordinate bottomRight() const
QGeoCoordinate center() const
bool contains(const QGeoRectangle &rectangle) const
void extendRectangle(const QGeoCoordinate &coordinate)
double height() const
bool intersects(const QGeoRectangle &rectangle) const
void setBottomLeft(const QGeoCoordinate &bottomLeft)
void setBottomRight(const QGeoCoordinate &bottomRight)
void setCenter(const QGeoCoordinate &center)
void setHeight(double degreesHeight)
void setTopLeft(const QGeoCoordinate &topLeft)
void setTopRight(const QGeoCoordinate &topRight)
void setWidth(double degreesWidth)
QString toString() const
QGeoCoordinate topLeft() const
QGeoCoordinate topRight() const
void translate(double degreesLatitude, double degreesLongitude)
QGeoRectangle translated(double degreesLatitude, double degreesLongitude) const
QGeoRectangle united(const QGeoRectangle &rectangle) const
double width() const
QGeoRectangle &operator=(const QGeoRectangle &other)
QGeoRectangle operator|(const QGeoRectangle &rectangle) const
QGeoRectangle &operator|=(const QGeoRectangle &rectangle)

Detailed Description

The rectangle is defined in terms of a QGeoCoordinate which specifies the top left coordinate of the rectangle and a QGeoCoordinate which specifies the bottom right coordinate of the rectangle.

A geo rectangle is considered invalid if the top left or bottom right coordinates are invalid or if the top left coordinate is south of the bottom right coordinate.

Geo rectangles can never cross the poles.

Several methods behave as though the geo rectangle is defined in terms of a center coordinate, the width of the geo rectangle in degrees and the height of the geo rectangle in degrees.

If the height or center of a geo rectangle is adjusted such that it would cross one of the poles the height is modified such that the geo rectangle touches but does not cross the pole and that the center coordinate is still in the center of the geo rectangle.

This class is a Q_GADGET since Qt 5.5. It can be directly used from C++ and QML.

Property Documentation

bottomLeft : QGeoCoordinate

This property holds the bottom left coorindate of this geo rectangle.

While this property is introduced in Qt 5.5, the related accessor functions exist since the first version of this class.

Access functions:

QGeoCoordinate bottomLeft() const
void setBottomLeft(const QGeoCoordinate &bottomLeft)

bottomRight : QGeoCoordinate

This property holds the bottom right coordinate of this geo rectangle.

While this property is introduced in Qt 5.5, the related accessor functions exist since the first version of this class.

Access functions:

QGeoCoordinate bottomRight() const
void setBottomRight(const QGeoCoordinate &bottomRight)

center : QGeoCoordinate

This property holds the center of this geo rectangle.

While this property is introduced in Qt 5.5, the related accessor functions exist since the first version of this class.

Access functions:

QGeoCoordinate center() const
void setCenter(const QGeoCoordinate &center)

See also QGeoShape::center.

height : double

This property holds the height of this geo rectangle in degrees.

The property value is undefined if this geo rectangle is invalid.

If the new height is less than 0.0 or if this geo rectangle is invalid, the property is not changed. To set up the values of an invalid geo rectangle based on the center, width, and height, you should use setCenter() first to make the geo rectangle valid.

If the change in height would cause the geo rectangle to cross a pole, the height is adjusted such that the geo rectangle only touches the pole.

This change is done such that the center coordinate is still at the center of the geo rectangle, which may result in a geo rectangle with a smaller height than expected.

180.0 is the height used only if the new height is greater or equal than 180.

While this property is introduced in Qt 5.5, the related accessor functions exist since the first version of this class.

Access functions:

double height() const
void setHeight(double degreesHeight)

topLeft : QGeoCoordinate

This property holds the top left coordinate of this geo rectangle.

While this property is introduced in Qt 5.5, the related accessor functions exist since the first version of this class.

Access functions:

QGeoCoordinate topLeft() const
void setTopLeft(const QGeoCoordinate &topLeft)

topRight : QGeoCoordinate

This property holds the top right coordinate of this geo rectangle.

While this property is introduced in Qt 5.5, the related accessor functions exist since the first version of this class.

Access functions:

QGeoCoordinate topRight() const
void setTopRight(const QGeoCoordinate &topRight)

width : double

This property holds the width of this geo rectangle in degrees.

The property value is undefined if this geo rectangle is invalid.

If the new width is less than 0.0 or if this geo rectangle is invalid, this function does nothing. To set up the values of an invalid geo rectangle based on the center, width, and height, you should use setCenter() first to make the geo rectangle valid.

360.0 is the width used only if the new width is equal or greater than 360. In such cases the leftmost longitude of the geo rectangle is set to -180.0 degrees and the rightmost longitude of the geo rectangle is set to 180.0 degrees.

While this property is introduced in Qt 5.5, the related accessor functions exist since the first version of this class.

Access functions:

double width() const
void setWidth(double degreesWidth)

Member Function Documentation

QGeoRectangle::QGeoRectangle()

Constructs a new, invalid geo rectangle.

QGeoRectangle::QGeoRectangle(const QGeoShape &other)

Constructs a geo rectangle from the contents of other.

QGeoRectangle::QGeoRectangle(const QList<QGeoCoordinate> &coordinates)

Constructs a new geo rectangle, of minimum size, containing all of the coordinates.

QGeoRectangle::QGeoRectangle(const QGeoCoordinate &topLeft, const QGeoCoordinate &bottomRight)

Constructs a new geo rectangle with a top left coordinate topLeft and a bottom right coordinate bottomRight.

QGeoRectangle::QGeoRectangle(const QGeoCoordinate &center, double degreesWidth, double degreesHeight)

Constructs a new geo rectangle centered at center with a width in degrees of degreesWidth and a height in degrees of degreesHeight.

If degreesHeight would take the geo rectangle beyond one of the poles, the height of the geo rectangle will be truncated such that the geo rectangle only extends up to the pole. The center of the geo rectangle will be unchanged, and the height will be adjusted such that the center point is at the center of the truncated geo rectangle.

QGeoRectangle::QGeoRectangle(const QGeoRectangle &other)

Constructs a geo rectangle from the contents of other.

[noexcept] QGeoRectangle::~QGeoRectangle()

Destroys this geo rectangle.

QGeoCoordinate QGeoRectangle::bottomLeft() const

Returns the bottom left coordinate of this geo rectangle.

Note: Getter function for property bottomLeft.

See also setBottomLeft().

QGeoCoordinate QGeoRectangle::bottomRight() const

Returns the bottom right coordinate of this geo rectangle.

Note: Getter function for property bottomRight.

See also setBottomRight().

QGeoCoordinate QGeoRectangle::center() const

Returns the center of this geo rectangle. Equivalent to QGeoShape::center().

Note: Getter function for property center.

See also setCenter().

bool QGeoRectangle::contains(const QGeoRectangle &rectangle) const

Returns whether the geo rectangle rectangle is contained within this geo rectangle.

[invokable] void QGeoRectangle::extendRectangle(const QGeoCoordinate &coordinate)

Extends the geo rectangle to also cover the coordinate coordinate

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

double QGeoRectangle::height() const

Returns the height of this geo rectangle in degrees.

The return value is undefined if this geo rectangle is invalid.

Note: Getter function for property height.

See also setHeight().

[invokable] bool QGeoRectangle::intersects(const QGeoRectangle &rectangle) const

Returns whether the geo rectangle rectangle intersects this geo rectangle.

If the top or bottom edges of both geo rectangles are at one of the poles the geo rectangles are considered to be intersecting, since the longitude is irrelevant when the edges are at the pole.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

void QGeoRectangle::setBottomLeft(const QGeoCoordinate &bottomLeft)

Sets the bottom left coordinate of this geo rectangle to bottomLeft.

Note: Setter function for property bottomLeft.

See also bottomLeft().

void QGeoRectangle::setBottomRight(const QGeoCoordinate &bottomRight)

Sets the bottom right coordinate of this geo rectangle to bottomRight.

Note: Setter function for property bottomRight.

See also bottomRight().

void QGeoRectangle::setCenter(const QGeoCoordinate &center)

Sets the center of this geo rectangle to center.

If this causes the geo rectangle to cross on of the poles the height of the geo rectangle will be truncated such that the geo rectangle only extends up to the pole. The center of the geo rectangle will be unchanged, and the height will be adjusted such that the center point is at the center of the truncated geo rectangle.

Note: Setter function for property center.

See also center().

void QGeoRectangle::setHeight(double degreesHeight)

Sets the height of this geo rectangle in degrees to degreesHeight.

Note: Setter function for property height.

See also height().

void QGeoRectangle::setTopLeft(const QGeoCoordinate &topLeft)

Sets the top left coordinate of this geo rectangle to topLeft.

Note: Setter function for property topLeft.

See also topLeft().

void QGeoRectangle::setTopRight(const QGeoCoordinate &topRight)

Sets the top right coordinate of this geo rectangle to topRight.

Note: Setter function for property topRight.

See also topRight().

void QGeoRectangle::setWidth(double degreesWidth)

Sets the width of this geo rectangle in degrees to degreesWidth.

Note: Setter function for property width.

See also width().

[invokable] QString QGeoRectangle::toString() const

Returns the geo rectangle properties as a string.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

QGeoCoordinate QGeoRectangle::topLeft() const

Returns the top left coordinate of this geo rectangle.

Note: Getter function for property topLeft.

See also setTopLeft().

QGeoCoordinate QGeoRectangle::topRight() const

Returns the top right coordinate of this geo rectangle.

Note: Getter function for property topRight.

See also setTopRight().

[invokable] void QGeoRectangle::translate(double degreesLatitude, double degreesLongitude)

Translates this geo rectangle by degreesLatitude northwards and degreesLongitude eastwards.

Negative values of degreesLatitude and degreesLongitude correspond to southward and westward translation respectively.

If the translation would have caused the geo rectangle to cross a pole the geo rectangle will be translated until the top or bottom edge of the geo rectangle touches the pole but not further.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

[invokable] QGeoRectangle QGeoRectangle::translated(double degreesLatitude, double degreesLongitude) const

Returns a copy of this geo rectangle translated by degreesLatitude northwards and degreesLongitude eastwards.

Negative values of degreesLatitude and degreesLongitude correspond to southward and westward translation respectively.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also translate().

[invokable] QGeoRectangle QGeoRectangle::united(const QGeoRectangle &rectangle) const

Returns the smallest geo rectangle which contains both this geo rectangle and rectangle.

If the centers of the two geo rectangles are separated by exactly 180.0 degrees then the width is set to 360.0 degrees with the leftmost longitude set to -180.0 degrees and the rightmost longitude set to 180.0 degrees. This is done to ensure that the result is independent of the order of the operands.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

double QGeoRectangle::width() const

Returns the width of this geo rectangle in degrees.

The return value is undefined if this geo rectangle is invalid.

Note: Getter function for property width.

See also setWidth().

QGeoRectangle &QGeoRectangle::operator=(const QGeoRectangle &other)

Assigns other to this geo rectangle and returns a reference to this geo rectangle.

QGeoRectangle QGeoRectangle::operator|(const QGeoRectangle &rectangle) const

Returns the smallest geo rectangle which contains both this geo rectangle and rectangle.

If the centers of the two geo rectangles are separated by exactly 180.0 degrees then the width is set to 360.0 degrees with the leftmost longitude set to -180.0 degrees and the rightmost longitude set to 180.0 degrees. This is done to ensure that the result is independent of the order of the operands.

QGeoRectangle &QGeoRectangle::operator|=(const QGeoRectangle &rectangle)

Returns the smallest geo rectangle which contains both this geo rectangle and rectangle.

If the centers of the two geo rectangles are separated by exactly 180.0 degrees then the width is set to 360.0 degrees with the leftmost longitude set to -180.0 degrees and the rightmost longitude set to 180.0 degrees. This is done to ensure that the result is independent of the order of the operands.