Class: QgsQuadrilateral

Quadrilateral geometry type.

A quadrilateral is a polygon with four edges (or sides) and four vertices or corners. This class allows the creation of simple quadrilateral (which does not self-intersect).

Added in version 3.6.

Methods

area

Returns the area of the quadrilateral, or 0 if the quadrilateral is empty.

equals

Compares two QgsQuadrilateral, allowing specification of the maximum allowable difference between points.

isValid

Convenient method to determine if a QgsQuadrilateral is valid.

perimeter

Returns the perimeter of the quadrilateral, or 0 if the quadrilateral is empty.

points

Returns a list including the vertices of the quadrilateral.

setPoint

Sets the point newPoint at the index.

setPoints

Set all points Returns False if the QgsQuadrilateral is not valid:

toLineString

Returns the quadrilateral as a new linestring.

toPolygon

Returns the quadrilateral as a new polygon.

toString

Returns a string representation of the quadrilateral.

Static Methods

fromRectangle

Construct a QgsQuadrilateral as a rectangle from a QgsRectangle.

rectangleFrom3Points

Construct a QgsQuadrilateral as a Rectangle from 3 points.

rectangleFromCenterPoint

Construct a QgsQuadrilateral as a rectangle from center point center and another point point.

rectangleFromExtent

Construct a QgsQuadrilateral as a rectangle from an extent, defined by two opposite corner points.

squareFromDiagonal

Construct a QgsQuadrilateral as a square from a diagonal.

Attributes

Distance

Point1

Point2

Point3

Point4

Projected

class qgis.core.QgsQuadrilateral[source]

Bases: object

__init__()

Constructor for an empty quadrilateral geometry.

__init__(p1: QgsPoint, p2: QgsPoint, p3: QgsPoint, p4: QgsPoint)

Construct a QgsQuadrilateral from four QgsPoint.

Parameters:

See also

setPoints()

__init__(p1: QgsPointXY, p2: QgsPointXY, p3: QgsPointXY, p4: QgsPointXY)

Construct a QgsQuadrilateral from four QgsPointXY.

Parameters:

See also

setPoints()

__init__(a0: QgsQuadrilateral)
Parameters:

a0 (QgsQuadrilateral)

class ConstructionOption

Bases: int

Distance = 0
class Point

Bases: int

Point1 = 0
Point2 = 1
Point3 = 2
Point4 = 3
Projected = 1
area(self) float[source]

Returns the area of the quadrilateral, or 0 if the quadrilateral is empty.

Return type:

float

equals(self, other: QgsQuadrilateral, epsilon: float = 4 * DBL_EPSILON) bool[source]

Compares two QgsQuadrilateral, allowing specification of the maximum allowable difference between points.

Parameters:
Return type:

bool

static fromRectangle(rectangle: QgsRectangle) QgsQuadrilateral[source]

Construct a QgsQuadrilateral as a rectangle from a QgsRectangle.

Parameters:

rectangle (QgsRectangle) – rectangle

Return type:

QgsQuadrilateral

isValid(self) bool[source]

Convenient method to determine if a QgsQuadrilateral is valid. A QgsQuadrilateral must be simple (not self-intersecting) and cannot have collinear points.

Return type:

bool

perimeter(self) float[source]

Returns the perimeter of the quadrilateral, or 0 if the quadrilateral is empty.

Return type:

float

points(self) List[QgsPoint][source]

Returns a list including the vertices of the quadrilateral.

Return type:

List[QgsPoint]

static rectangleFrom3Points(p1: QgsPoint, p2: QgsPoint, p3: QgsPoint, mode: QgsQuadrilateral.ConstructionOption) QgsQuadrilateral[source]

Construct a QgsQuadrilateral as a Rectangle from 3 points. In the case where one of the points is of type PointZ. The other points will also be of type Z, even if they are of type Point. In addition, the z used will be the one of the first point with a Z. This ensures consistency in point types and the ability to export to a Polygon or LineString. M is taken from point p1.

Parameters:

See also

ConstructionOption

Return type:

QgsQuadrilateral

static rectangleFromCenterPoint(center: QgsPoint, point: QgsPoint) QgsQuadrilateral[source]

Construct a QgsQuadrilateral as a rectangle from center point center and another point point. Z and M are taken from point p1. QgsQuadrilateral will have the same dimension as center dimension.

Parameters:
Return type:

QgsQuadrilateral

static rectangleFromExtent(p1: QgsPoint, p2: QgsPoint) QgsQuadrilateral[source]

Construct a QgsQuadrilateral as a rectangle from an extent, defined by two opposite corner points. Z and M are taken from point p1. QgsQuadrilateral will have the same dimension as p1 dimension.

Parameters:
Return type:

QgsQuadrilateral

setPoint(self, newPoint: QgsPoint, index: QgsQuadrilateral.Point) bool[source]

Sets the point newPoint at the index. Returns False if the QgsQuadrilateral is not valid.

See also

Point

Parameters:
Return type:

bool

setPoints(self, p1: QgsPoint, p2: QgsPoint, p3: QgsPoint, p4: QgsPoint) bool[source]

Set all points Returns False if the QgsQuadrilateral is not valid:

  • The points do not have the same type

  • The quadrilateral would have auto intersections

  • The quadrilateral has double points

  • The quadrilateral has collinear points

Parameters:
Return type:

bool

static squareFromDiagonal(p1: QgsPoint, p2: QgsPoint) QgsQuadrilateral[source]

Construct a QgsQuadrilateral as a square from a diagonal. Z and M are taken from point p1. QgsQuadrilateral will have the same dimension as p1 dimension.

Parameters:
Return type:

QgsQuadrilateral

toLineString(self, force2D: bool = False) QgsLineString | None[source]

Returns the quadrilateral as a new linestring. Ownership is transferred to the caller.

Parameters:

force2D (bool = False)

Return type:

Optional[QgsLineString]

toPolygon(self, force2D: bool = False) QgsPolygon | None[source]

Returns the quadrilateral as a new polygon. Ownership is transferred to the caller.

Parameters:

force2D (bool = False)

Return type:

Optional[QgsPolygon]

toString(self, pointPrecision: int = 17) str[source]

Returns a string representation of the quadrilateral. Members will be truncated to the specified precision.

Parameters:

pointPrecision (int = 17)

Return type:

str