QGeoBoundingBox

Since: 1.1

#include <QtLocationSubset/QGeoBoundingBox>

The QGeoBoundingBox class defines a rectangular geographic area.

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 bounding box 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.

Bounding boxes can never cross the poles.

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

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


Overview

Inheritance

QtMobilitySubset::QGeoBoundingArea
QtMobilitySubset::QGeoBoundingBox

Public Types Index

Only has inherited public types

enum AreaType

BoxType, CircleType

Public Functions Index

QGeoBoundingBox ()
QGeoBoundingBox (const QGeoCoordinate &center, double degreesWidth, double degreesHeight)
QGeoBoundingBox (const QGeoCoordinate &topLeft, const QGeoCoordinate &bottomRight)
QGeoBoundingBox (const QGeoBoundingBox &other)
~QGeoBoundingBox ()
QGeoCoordinatebottomLeft () const
QGeoCoordinatebottomRight () const
QGeoCoordinatecenter () const
virtual boolcontains (const QGeoCoordinate &coordinate) const
boolcontains (const QGeoBoundingBox &boundingBox) const
doubleheight () const
boolintersects (const QGeoBoundingBox &boundingBox) const
virtual boolisEmpty () const
virtual boolisValid () const
booloperator!= (const QGeoBoundingBox &other) const
QGeoBoundingBox &operator= (const QGeoBoundingBox &other)
booloperator== (const QGeoBoundingBox &other) const
QGeoBoundingBoxoperator| (const QGeoBoundingBox &boundingBox) const
QGeoBoundingBox &operator|= (const QGeoBoundingBox &boundingBox)
voidsetBottomLeft (const QGeoCoordinate &bottomLeft)
voidsetBottomRight (const QGeoCoordinate &bottomRight)
voidsetCenter (const QGeoCoordinate &center)
voidsetHeight (double degreesHeight)
voidsetTopLeft (const QGeoCoordinate &topLeft)
voidsetTopRight (const QGeoCoordinate &topRight)
voidsetWidth (double degreesWidth)
QGeoCoordinatetopLeft () const
QGeoCoordinatetopRight () const
voidtranslate (double degreesLatitude, double degreesLongitude)
QGeoBoundingBoxtranslated (double degreesLatitude, double degreesLongitude) const
virtual QGeoBoundingArea::AreaTypetype () const
QGeoBoundingBoxunited (const QGeoBoundingBox &boundingBox) const
doublewidth () const

Public Types

(Only has inherited public types)

AreaType Inherited

Describes the type of a bounding area.

BoxType A box shaped bounding area.

CircleType A circular bounding area.

BoxType
CircleType

Public Functions

QGeoBoundingBox ()

Constructs a new, invalid bounding box.

QGeoBoundingBox (
  • const QGeoCoordinate &center,
  • doubledegreesWidth,
  • doubledegreesHeight )

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

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

QGeoBoundingBox (

Constructs a new bounding box with a top left coordinate topLeft and a bottom right coordinate bottomRight.

QGeoBoundingBox (

Constructs a bounding box from the contents of other.

~QGeoBoundingBox ()

Destructor.

QGeoCoordinate bottomLeft ()

Returns the bottom left coordinate of this bounding box.

QGeoCoordinate bottomRight ()

Returns the bottom right coordinate of this bounding box.

QGeoCoordinate center ()

Returns the center of this bounding box.

virtual bool contains (

Returns whether the coordinate coordinate is contained within this bounding box.

bool contains (

Returns whether the bounding box boundingBox is contained within this bounding box.

double height ()

Returns the height of this bounding box in degrees.

The return value is undefined if this bounding box is invalid.

bool intersects (

Returns whether the bounding box boundingBox intersects this bounding box.

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

virtual bool isEmpty ()

Returns whether this bounding box has a geometrical area of 0.

Returns true if this bounding box is invalid.

virtual bool isValid ()

Returns whether this bounding box is valid.

A valid bounding box has valid top left and bottom right coordinates and has a top left coordinate with latitude greater than or equal to the latitude of the bottom right coordinate.

bool operator!= (

Returns whether this bounding box is not equal to other.

QGeoBoundingBox & operator= (

Assigns other to this bounding box and returns a reference to this bounding box.

bool operator== (

Returns whether this bounding box is equal to other.

QGeoBoundingBox operator| (

Returns the smallest bounding box which contains both this bounding box and boundingBox.

QGeoBoundingBox & operator|= (

Returns the smallest bounding box which contains both this bounding box and boundingBox.

void setBottomLeft (

Sets the bottom left coordinate of this bounding box to bottomLeft.

void setBottomRight (

Sets the bottom right coordinate of this bounding box to bottomRight.

void setCenter (

Sets the center of this bounding box to center.

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

void setHeight (
  • doubledegreesHeight)

Sets the height of this bounding box in degrees to degreesHeight.

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

If the change in height would cause the bounding box to cross a pole the height is adjusted such that the bounding box only touches the pole.

This change is done such that the center coordinate is still at the center of the bounding box, which may result in a bounding box with a smaller height than might otherwise be expected.

If degreesHeight is greater than 180.0 then 180.0 is used as the height.

void setTopLeft (

Sets the top left coordinate of this bounding box to topLeft.

void setTopRight (

Sets the top right coordinate of this bounding box to topRight.

void setWidth (
  • doubledegreesWidth)

Sets the width of this bounding box in degrees to degreesWidth.

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

If degreesWidth is greater than 360.0 then 360.0 is used as the width, the leftmost longitude of the bounding box is set to -180.0 degrees and the rightmost longitude of the bounding box is set to 180.0 degrees.

QGeoCoordinate topLeft ()

Returns the top left coordinate of this bounding box.

QGeoCoordinate topRight ()

Returns the top right coordinate of this bounding box.

void translate (
  • doubledegreesLatitude,
  • doubledegreesLongitude )

Translates this bounding box 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 bounding box to cross a pole the bounding box will be translated until the top or bottom edge of bounding box touches the pole but not further.

QGeoBoundingBox translated (
  • doubledegreesLatitude,
  • doubledegreesLongitude )

Returns a copy of this bounding box translated by degreesLatitude northwards and degreesLongitude eastwards.

See also:

translate()

virtualQGeoBoundingArea::AreaType type ()

Returns QGeoBoundingArea::BoxType to identify this as a QGeoBoundingBox instance.

This function is provided to help find the specific type of aQGeoBoundingArea instance.

QGeoBoundingBox united (

Returns the smallest bounding box which contains both this bounding box and boundingBox.

double width ()

Returns the width of this bounding box in degrees.

The return value is undefined if this bounding box is invalid.

Last modified: 2014-09-29



Got questions about leaving a comment? Get answers from our Disqus FAQ.

comments powered by Disqus