QGIS API Documentation  2.9.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Public Member Functions | Static Public Member Functions | List of all members
QgsGeometry Class Reference

#include <qgsgeometry.h>

Classes

class  Error
 

Public Member Functions

 QgsGeometry ()
 Constructor. More...
 
 QgsGeometry (const QgsGeometry &)
 copy constructor will prompt a deep copy of the object More...
 
 ~QgsGeometry ()
 Destructor. More...
 
int addPart (const QList< QgsPoint > &points, QGis::GeometryType geomType=QGis::UnknownGeometry)
 Adds a new island polygon to a multipolygon feature. More...
 
int addPart (GEOSGeometry *newPart)
 Adds a new island polygon to a multipolygon feature. More...
 
int addPart (QgsGeometry *newPart)
 Adds a new island polygon to a multipolygon feature. More...
 
int addRing (const QList< QgsPoint > &ring)
 Adds a new ring to this geometry. More...
 
void adjacentVertices (int atVertex, int &beforeVertex, int &afterVertex)
 Returns the indexes of the vertices before and after the given vertex index. More...
 
double area ()
 get area of geometry using GEOS More...
 
QList< QgsGeometry * > asGeometryCollection () const
 return contents of the geometry as a list of geometries More...
 
const GEOSGeometry * asGeos () const
 Returns a geos geometry. More...
 
QgsMultiPoint asMultiPoint () const
 return contents of the geometry as a multi point if wkbType is WKBMultiPoint, otherwise an empty list More...
 
QgsMultiPolygon asMultiPolygon () const
 return contents of the geometry as a multi polygon if wkbType is WKBMultiPolygon, otherwise an empty list More...
 
QgsMultiPolyline asMultiPolyline () const
 return contents of the geometry as a multi linestring if wkbType is WKBMultiLineString, otherwise an empty list More...
 
QgsPoint asPoint () const
 return contents of the geometry as a point if wkbType is WKBPoint, otherwise returns [0,0] More...
 
QgsPolygon asPolygon () const
 return contents of the geometry as a polygon if wkbType is WKBPolygon, otherwise an empty list More...
 
QgsPolyline asPolyline () const
 return contents of the geometry as a polyline if wkbType is WKBLineString, otherwise an empty list More...
 
QPointF asQPointF () const
 Return contents of the geometry as a QPointF if wkbType is WKBPoint, otherwise returns a null QPointF. More...
 
QPolygonF asQPolygonF () const
 Return contents of the geometry as a QPolygonF. More...
 
const unsigned char * asWkb () const
 Returns the buffer containing this geometry in WKB format. More...
 
int avoidIntersections (QMap< QgsVectorLayer *, QSet< QgsFeatureId > > ignoreFeatures=(QMap< QgsVectorLayer *, QSet< QgsFeatureId > >()))
 Modifies geometry to avoid intersections with the layers specified in project properties. More...
 
QgsRectangle boundingBox ()
 Returns the bounding box of this feature. More...
 
QgsGeometrybuffer (double distance, int segments)
 Returns a buffer region around this geometry having the given width and with a specified number of segments used to approximate curves. More...
 
QgsGeometrybuffer (double distance, int segments, int endCapStyle, int joinStyle, double mitreLimit)
 Returns a buffer region around the geometry, with additional style options. More...
 
QgsGeometrycentroid ()
 Returns the center of mass of a geometry. More...
 
double closestSegmentWithContext (const QgsPoint &point, QgsPoint &minDistPoint, int &afterVertex, double *leftOf=0, double epsilon=DEFAULT_SEGMENT_EPSILON)
 Searches for the closest segment of geometry to the given point. More...
 
QgsPoint closestVertex (const QgsPoint &point, int &atVertex, int &beforeVertex, int &afterVertex, double &sqrDist)
 Returns the vertex closest to the given point, the corresponding vertex index, squared distance snap point / target point and the indices of the vertices before/after. More...
 
double closestVertexWithContext (const QgsPoint &point, int &atVertex)
 Searches for the closest vertex in this geometry to the given point. More...
 
QgsGeometrycombine (QgsGeometry *geometry)
 Returns a geometry representing all the points in this geometry and other (a union geometry operation). More...
 
bool contains (const QgsPoint *p) const
 Test for containment of a point (uses GEOS) More...
 
bool contains (const QgsGeometry *geometry) const
 Test for if geometry is contained in another (uses GEOS) More...
 
bool convertToMultiType ()
 Converts single type geometry into multitype geometry e.g. More...
 
QgsGeometryconvertToType (QGis::GeometryType destType, bool destMultipart=false)
 try to convert the geometry to the requested type More...
 
QgsGeometryconvexHull ()
 Returns the smallest convex polygon that contains all the points in the geometry. More...
 
bool crosses (const QgsGeometry *geometry) const
 Test for if geometry crosses another (uses GEOS) More...
 
bool deletePart (int partNum)
 delete part identified by the part number More...
 
bool deleteRing (int ringNum, int partNum=0)
 delete a ring in polygon or multipolygon. More...
 
bool deleteVertex (int atVertex)
 Deletes the vertex at the given position number and item (first number is index 0) Returns false if atVertex does not correspond to a valid vertex on this geometry (including if this geometry is a Point), or if the number of remaining verticies in the linestring would be less than two. More...
 
QgsGeometrydifference (QgsGeometry *geometry)
 Returns a geometry representing the points making up this geometry that do not make up other. More...
 
bool disjoint (const QgsGeometry *geometry) const
 Test for if geometry is disjoint of another (uses GEOS) More...
 
double distance (QgsGeometry &geom)
 
bool equals (const QgsGeometry *geometry) const
 Test for if geometry equals another (uses GEOS) More...
 
QString exportToGeoJSON (const int &precision=17) const
 Exports the geometry to GeoJSON. More...
 
QString exportToWkt (const int &precision=17) const
 Exports the geometry to WKT. More...
 
void fromGeos (GEOSGeometry *geos)
 Set the geometry, feeding in a geometry in GEOS format. More...
 
void fromWkb (unsigned char *wkb, size_t length)
 Set the geometry, feeding in the buffer containing OGC Well-Known Binary and the buffer's length. More...
 
bool insertVertex (double x, double y, int beforeVertex)
 Insert a new vertex before the given vertex index, ring and item (first number is index 0) If the requested vertex number (beforeVertex.back()) is greater than the last actual vertex on the requested ring and item, it is assumed that the vertex is to be appended instead of inserted. More...
 
QgsGeometryinterpolate (double distance)
 Return interpolated point on line at distance. More...
 
QgsGeometryintersection (QgsGeometry *geometry)
 Returns a geometry representing the points shared by this geometry and other. More...
 
bool intersects (const QgsRectangle &r) const
 Test for intersection with a rectangle (uses GEOS) More...
 
bool intersects (const QgsGeometry *geometry) const
 Test for intersection with a geometry (uses GEOS) More...
 
bool isGeosEmpty ()
 check if geometry is empty using GEOS More...
 
bool isGeosEqual (QgsGeometry &)
 compare geometries using GEOS More...
 
bool isGeosValid ()
 check validity using GEOS More...
 
bool isMultipart () const
 Returns true if wkb of the geometry is of WKBMulti* type. More...
 
double length ()
 get length of geometry using GEOS More...
 
int makeDifference (QgsGeometry *other)
 Changes this geometry such that it does not intersect the other geometry. More...
 
bool moveVertex (double x, double y, int atVertex)
 Moves the vertex at the given position number and item (first number is index 0) to the given coordinates. More...
 
QgsGeometryoffsetCurve (double distance, int segments, int joinStyle, double mitreLimit)
 Returns an offset line at a given distance and side from an input line. More...
 
QgsGeometryoperator= (QgsGeometry const &rhs)
 assignments will prompt a deep copy of the object More...
 
bool overlaps (const QgsGeometry *geometry) const
 Test for if geometry overlaps another (uses GEOS) More...
 
QgsGeometrypointOnSurface ()
 Returns a point within a geometry. More...
 
int reshapeGeometry (const QList< QgsPoint > &reshapeWithLine)
 Replaces a part of this geometry with another line. More...
 
int rotate (double rotation, const QgsPoint &center)
 Rotate this geometry around the Z axis. More...
 
QgsGeometrysimplify (double tolerance)
 Returns a simplified version of this geometry using a specified tolerance value. More...
 
QgsGeometrysmooth (const unsigned int iterations=1, const double offset=0.25)
 Smooths a geometry by rounding off corners using the Chaikin algorithm. More...
 
int splitGeometry (const QList< QgsPoint > &splitLine, QList< QgsGeometry * > &newGeometries, bool topological, QList< QgsPoint > &topologyTestPoints)
 Splits this geometry according to a given line. More...
 
double sqrDistToVertexAt (QgsPoint &point, int atVertex)
 Returns the squared cartesian distance between the given point to the given vertex index (vertex at the given position number, ring and item (first number is index 0)) More...
 
QgsGeometrysymDifference (QgsGeometry *geometry)
 Returns a Geometry representing the points making up this Geometry that do not make up other. More...
 
bool touches (const QgsGeometry *geometry) const
 Test for if geometry touch another (uses GEOS) More...
 
int transform (const QgsCoordinateTransform &ct)
 Transform this geometry as described by CoordinateTranasform ct. More...
 
int transform (const QTransform &ct)
 Transform this geometry as described by QTransform ct. More...
 
int translate (double dx, double dy)
 Translate this geometry by dx, dy. More...
 
QGis::GeometryType type () const
 Returns type of the vector. More...
 
void validateGeometry (QList< Error > &errors)
 Validate geometry and produce a list of geometry errors. More...
 
QgsPoint vertexAt (int atVertex)
 Returns coordinates of a vertex. More...
 
bool within (const QgsGeometry *geometry) const
 Test for if geometry is within another (uses GEOS) More...
 
size_t wkbSize () const
 Returns the size of the WKB in asWkb(). More...
 
QGis::WkbType wkbType () const
 Returns type of wkb (point / linestring / polygon etc.) More...
 

Static Public Member Functions

static bool compare (const QgsPolyline &p1, const QgsPolyline &p2, double epsilon=4 *DBL_EPSILON)
 Compares two polylines for equality within a specified tolerance. More...
 
static bool compare (const QgsPolygon &p1, const QgsPolygon &p2, double epsilon=4 *DBL_EPSILON)
 Compares two polygons for equality within a specified tolerance. More...
 
static bool compare (const QgsMultiPolygon &p1, const QgsMultiPolygon &p2, double epsilon=4 *DBL_EPSILON)
 Compares two multipolygons for equality within a specified tolerance. More...
 
static QgsGeometryfromMultiPoint (const QgsMultiPoint &multipoint)
 construct geometry from a multipoint More...
 
static QgsGeometryfromMultiPolygon (const QgsMultiPolygon &multipoly)
 construct geometry from a multipolygon More...
 
static QgsGeometryfromMultiPolyline (const QgsMultiPolyline &multiline)
 construct geometry from a multipolyline More...
 
static QgsGeometryfromPoint (const QgsPoint &point)
 construct geometry from a point More...
 
static QgsGeometryfromPolygon (const QgsPolygon &polygon)
 construct geometry from a polygon More...
 
static QgsGeometryfromPolyline (const QgsPolyline &polyline)
 construct geometry from a polyline More...
 
static QgsGeometryfromQPointF (const QPointF &point)
 Construct geometry from a QPointF. More...
 
static QgsGeometryfromQPolygonF (const QPolygonF &polygon)
 Construct geometry from a QPolygonF. More...
 
static QgsGeometryfromRect (const QgsRectangle &rect)
 construct geometry from a rectangle More...
 
static QgsGeometryfromWkt (QString wkt)
 static method that creates geometry from Wkt More...
 
static GEOSContextHandle_t getGEOSHandler ()
 return GEOS context handle More...
 
static QgsGeometryunaryUnion (const QList< QgsGeometry * > &geometryList)
 compute the unary union on a list of geometries. More...
 

Detailed Description

Definition at line 69 of file qgsgeometry.h.

Constructor & Destructor Documentation

QgsGeometry::QgsGeometry ( )

Constructor.

Definition at line 144 of file qgsgeometry.cpp.

QgsGeometry::QgsGeometry ( const QgsGeometry rhs)

copy constructor will prompt a deep copy of the object

Definition at line 153 of file qgsgeometry.cpp.

QgsGeometry::~QgsGeometry ( )

Destructor.

Definition at line 174 of file qgsgeometry.cpp.

Member Function Documentation

int QgsGeometry::addPart ( const QList< QgsPoint > &  points,
QGis::GeometryType  geomType = QGis::UnknownGeometry 
)

Adds a new island polygon to a multipolygon feature.

Returns
0 in case of success, 1 if not a multipolygon, 2 if ring is not a valid geometry, 3 if new polygon ring not disjoint with existing polygons of the feature

Definition at line 2540 of file qgsgeometry.cpp.

int QgsGeometry::addPart ( GEOSGeometry *  newPart)

Adds a new island polygon to a multipolygon feature.

Returns
0 in case of success, 1 if not a multipolygon, 2 if ring is not a valid geometry, 3 if new polygon ring not disjoint with existing polygons of the feature
Note
not available in python bindings

Definition at line 2647 of file qgsgeometry.cpp.

int QgsGeometry::addPart ( QgsGeometry newPart)

Adds a new island polygon to a multipolygon feature.

Returns
0 in case of success, 1 if not a multipolygon, 2 if ring is not a valid geometry, 3 if new polygon ring not disjoint with existing polygons of the feature
Note
available in python bindings as addPartGeometry (added in 2.2)

Definition at line 2638 of file qgsgeometry.cpp.

int QgsGeometry::addRing ( const QList< QgsPoint > &  ring)

Adds a new ring to this geometry.

This makes only sense for polygon and multipolygons.

Returns
0 in case of success (ring added), 1 problem with geometry type, 2 ring not closed, 3 ring is not valid geometry, 4 ring not disjoint with existing rings, 5 no polygon found which contained the ring

Definition at line 2342 of file qgsgeometry.cpp.

void QgsGeometry::adjacentVertices ( int  atVertex,
int &  beforeVertex,
int &  afterVertex 
)

Returns the indexes of the vertices before and after the given vertex index.

This function takes into account the following factors:

  1. If the given vertex index is at the end of a linestring, the adjacent index will be -1 (for "no adjacent vertex")
  2. If the given vertex index is at the end of a linear ring (such as in a polygon), the adjacent index will take into account the first vertex is equal to the last vertex (and will skip equal vertex positions).

Definition at line 960 of file qgsgeometry.cpp.

double QgsGeometry::area ( )

get area of geometry using GEOS

Definition at line 5668 of file qgsgeometry.cpp.

QList< QgsGeometry * > QgsGeometry::asGeometryCollection ( ) const

return contents of the geometry as a list of geometries

Definition at line 6072 of file qgsgeometry.cpp.

const GEOSGeometry * QgsGeometry::asGeos ( ) const

Returns a geos geometry.

QgsGeometry keeps ownership, don't delete the returned object!

Note
not available in python bindings

Definition at line 620 of file qgsgeometry.cpp.

QgsMultiPoint QgsGeometry::asMultiPoint ( ) const

return contents of the geometry as a multi point if wkbType is WKBMultiPoint, otherwise an empty list

Definition at line 5604 of file qgsgeometry.cpp.

QgsMultiPolygon QgsGeometry::asMultiPolygon ( ) const

return contents of the geometry as a multi polygon if wkbType is WKBMultiPolygon, otherwise an empty list

Definition at line 5647 of file qgsgeometry.cpp.

QgsMultiPolyline QgsGeometry::asMultiPolyline ( ) const

return contents of the geometry as a multi linestring if wkbType is WKBMultiLineString, otherwise an empty list

Definition at line 5626 of file qgsgeometry.cpp.

QgsPoint QgsGeometry::asPoint ( ) const

return contents of the geometry as a point if wkbType is WKBPoint, otherwise returns [0,0]

Definition at line 5574 of file qgsgeometry.cpp.

QgsPolygon QgsGeometry::asPolygon ( ) const

return contents of the geometry as a polygon if wkbType is WKBPolygon, otherwise an empty list

Definition at line 5594 of file qgsgeometry.cpp.

QgsPolyline QgsGeometry::asPolyline ( ) const

return contents of the geometry as a polyline if wkbType is WKBLineString, otherwise an empty list

Definition at line 5584 of file qgsgeometry.cpp.

QPointF QgsGeometry::asQPointF ( ) const

Return contents of the geometry as a QPointF if wkbType is WKBPoint, otherwise returns a null QPointF.

Note
added in QGIS 2.7

Definition at line 6107 of file qgsgeometry.cpp.

QPolygonF QgsGeometry::asQPolygonF ( ) const

Return contents of the geometry as a QPolygonF.

If geometry is a linestring, then the result will be an open QPolygonF. If the geometry is a polygon, then the result will be a closed QPolygonF of the geometry's exterior ring.

Note
added in QGIS 2.7

Definition at line 6113 of file qgsgeometry.cpp.

const unsigned char * QgsGeometry::asWkb ( ) const

Returns the buffer containing this geometry in WKB format.

You may wish to use in conjunction with wkbSize().

Definition at line 604 of file qgsgeometry.cpp.

int QgsGeometry::avoidIntersections ( QMap< QgsVectorLayer *, QSet< QgsFeatureId > >  ignoreFeatures = ( QMap<QgsVectorLayer*, QSet<QgsFeatureId> >() ))

Modifies geometry to avoid intersections with the layers specified in project properties.

Returns
0 in case of success, 1 if geometry is not of polygon type, 2 if avoid intersection would change the geometry type, 3 other error during intersection removal
Parameters
ignoreFeaturespossibility to give a list of features where intersections should be ignored (not available in python bindings)

Definition at line 6280 of file qgsgeometry.cpp.

QgsRectangle QgsGeometry::boundingBox ( )

Returns the bounding box of this feature.

Definition at line 3230 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::buffer ( double  distance,
int  segments 
)

Returns a buffer region around this geometry having the given width and with a specified number of segments used to approximate curves.

Definition at line 5729 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::buffer ( double  distance,
int  segments,
int  endCapStyle,
int  joinStyle,
double  mitreLimit 
)

Returns a buffer region around the geometry, with additional style options.

Parameters
distancebuffer distance
segmentsFor round joins, number of segments to approximate quarter-circle
endCapStyleRound (1) / Flat (2) / Square (3) end cap style
joinStyleRound (1) / Mitre (2) / Bevel (3) join style
mitreLimitLimit on the mitre ratio used for very sharp corners
Note
added in 2.4
needs GEOS >= 3.3 - otherwise always returns 0

Definition at line 5744 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::centroid ( )

Returns the center of mass of a geometry.

Note
for line based geometries, the center point of the line is returned, and for point based geometries, the point itself is returned

Definition at line 5909 of file qgsgeometry.cpp.

double QgsGeometry::closestSegmentWithContext ( const QgsPoint point,
QgsPoint minDistPoint,
int &  afterVertex,
double *  leftOf = 0,
double  epsilon = DEFAULT_SEGMENT_EPSILON 
)

Searches for the closest segment of geometry to the given point.

Parameters
pointSpecifies the point for search
minDistPointReceives the nearest point on the segment
afterVertexReceives index of the vertex after the closest segment. The vertex before the closest segment is always afterVertex - 1
leftOfOut: Returns if the point lies on the left of right side of the segment ( < 0 means left, > 0 means right )
epsilonepsilon for segment snapping
Returns
The squared cartesian distance is also returned in sqrDist, negative number on error

Definition at line 2112 of file qgsgeometry.cpp.

QgsPoint QgsGeometry::closestVertex ( const QgsPoint point,
int &  atVertex,
int &  beforeVertex,
int &  afterVertex,
double &  sqrDist 
)

Returns the vertex closest to the given point, the corresponding vertex index, squared distance snap point / target point and the indices of the vertices before/after.

The vertices before/after are -1 if not present

Definition at line 711 of file qgsgeometry.cpp.

double QgsGeometry::closestVertexWithContext ( const QgsPoint point,
int &  atVertex 
)

Searches for the closest vertex in this geometry to the given point.

Parameters
pointSpecifiest the point for search
atVertexReceives index of the closest vertex
Returns
The squared cartesian distance is also returned in sqrDist, negative number on error

Definition at line 2062 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::combine ( QgsGeometry geometry)

Returns a geometry representing all the points in this geometry and other (a union geometry operation).

Note
this operation is not called union since its a reserved word in C++.

Definition at line 5996 of file qgsgeometry.cpp.

bool QgsGeometry::compare ( const QgsPolyline p1,
const QgsPolyline p2,
double  epsilon = 4 * DBL_EPSILON 
)
static

Compares two polylines for equality within a specified tolerance.

Parameters
p1first polyline
p2second polyline
epsilonmaximum difference for coordinates between the polylines
Returns
true if polylines have the same number of points and all points are equal within the specified tolerance
Note
added in QGIS 2.9

Definition at line 6745 of file qgsgeometry.cpp.

bool QgsGeometry::compare ( const QgsPolygon p1,
const QgsPolygon p2,
double  epsilon = 4 * DBL_EPSILON 
)
static

Compares two polygons for equality within a specified tolerance.

Parameters
p1first polygon
p2second polygon
epsilonmaximum difference for coordinates between the polygons
Returns
true if polygons have the same number of rings, and each ring has the same number of points and all points are equal within the specified tolerance
Note
added in QGIS 2.9

Definition at line 6758 of file qgsgeometry.cpp.

bool QgsGeometry::compare ( const QgsMultiPolygon p1,
const QgsMultiPolygon p2,
double  epsilon = 4 * DBL_EPSILON 
)
static

Compares two multipolygons for equality within a specified tolerance.

Parameters
p1first multipolygon
p2second multipolygon
epsilonmaximum difference for coordinates between the multipolygons
Returns
true if multipolygons have the same number of polygons, the polygons have the same number of rings, and each ring has the same number of points and all points are equal within the specified tolerance
Note
added in QGIS 2.9

Definition at line 6772 of file qgsgeometry.cpp.

bool QgsGeometry::contains ( const QgsPoint p) const

Test for containment of a point (uses GEOS)

Definition at line 3498 of file qgsgeometry.cpp.

bool QgsGeometry::contains ( const QgsGeometry geometry) const

Test for if geometry is contained in another (uses GEOS)

Definition at line 3559 of file qgsgeometry.cpp.

bool QgsGeometry::convertToMultiType ( )

Converts single type geometry into multitype geometry e.g.

a polygon into a multipolygon geometry with one polygon

Returns
true in case of success and false else

Definition at line 4608 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::convertToType ( QGis::GeometryType  destType,
bool  destMultipart = false 
)

try to convert the geometry to the requested type

Parameters
destTypethe geometry type to be converted to
destMultipartdetermines if the output geometry will be multipart or not
Returns
the converted geometry or NULL pointer if the conversion fails.
Note
added in 2.2

Definition at line 4590 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::convexHull ( )

Returns the smallest convex polygon that contains all the points in the geometry.

Definition at line 5939 of file qgsgeometry.cpp.

bool QgsGeometry::crosses ( const QgsGeometry geometry) const

Test for if geometry crosses another (uses GEOS)

Definition at line 3589 of file qgsgeometry.cpp.

bool QgsGeometry::deletePart ( int  partNum)

delete part identified by the part number

Returns
true on success

Definition at line 6191 of file qgsgeometry.cpp.

bool QgsGeometry::deleteRing ( int  ringNum,
int  partNum = 0 
)

delete a ring in polygon or multipolygon.

Ring 0 is outer ring and can't be deleted.

Returns
true on success

Definition at line 6142 of file qgsgeometry.cpp.

bool QgsGeometry::deleteVertex ( int  atVertex)

Deletes the vertex at the given position number and item (first number is index 0) Returns false if atVertex does not correspond to a valid vertex on this geometry (including if this geometry is a Point), or if the number of remaining verticies in the linestring would be less than two.

It is up to the caller to distinguish between these error conditions. (Or maybe we add another method to this object to help make the distinction?)

Definition at line 1480 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::difference ( QgsGeometry geometry)

Returns a geometry representing the points making up this geometry that do not make up other.

Definition at line 6030 of file qgsgeometry.cpp.

bool QgsGeometry::disjoint ( const QgsGeometry geometry) const

Test for if geometry is disjoint of another (uses GEOS)

Definition at line 3564 of file qgsgeometry.cpp.

double QgsGeometry::distance ( QgsGeometry geom)

Definition at line 5707 of file qgsgeometry.cpp.

bool QgsGeometry::equals ( const QgsGeometry geometry) const

Test for if geometry equals another (uses GEOS)

Definition at line 3569 of file qgsgeometry.cpp.

QString QgsGeometry::exportToGeoJSON ( const int &  precision = 17) const

Exports the geometry to GeoJSON.

Returns
a QString representing the geometry as GeoJSON
Note
precision parameter added in 2.4

Definition at line 3808 of file qgsgeometry.cpp.

QString QgsGeometry::exportToWkt ( const int &  precision = 17) const

Exports the geometry to WKT.

Note
precision parameter added in 2.4
Returns
true in case of success and false else

Definition at line 3594 of file qgsgeometry.cpp.

void QgsGeometry::fromGeos ( GEOSGeometry *  geos)

Set the geometry, feeding in a geometry in GEOS format.

This class will take ownership of the buffer.

Note
not available in python bindings

Definition at line 689 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::fromMultiPoint ( const QgsMultiPoint multipoint)
static

construct geometry from a multipoint

Definition at line 432 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::fromMultiPolygon ( const QgsMultiPolygon multipoly)
static

construct geometry from a multipolygon

Definition at line 476 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::fromMultiPolyline ( const QgsMultiPolyline multiline)
static

construct geometry from a multipolyline

Definition at line 454 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::fromPoint ( const QgsPoint point)
static

construct geometry from a point

Definition at line 417 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::fromPolygon ( const QgsPolygon polygon)
static

construct geometry from a polygon

Definition at line 427 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::fromPolyline ( const QgsPolyline polyline)
static

construct geometry from a polyline

Definition at line 422 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::fromQPointF ( const QPointF &  point)
static

Construct geometry from a QPointF.

Parameters
pointsource QPointF
Note
added in QGIS 2.7

Definition at line 516 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::fromQPolygonF ( const QPolygonF &  polygon)
static

Construct geometry from a QPolygonF.

If the polygon is closed than the resultant geometry will be a polygon, if it is open than the geometry will be a polyline.

Parameters
polygonsource QPolygonF
Note
added in QGIS 2.7

Definition at line 521 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::fromRect ( const QgsRectangle rect)
static

construct geometry from a rectangle

Definition at line 501 of file qgsgeometry.cpp.

void QgsGeometry::fromWkb ( unsigned char *  wkb,
size_t  length 
)

Set the geometry, feeding in the buffer containing OGC Well-Known Binary and the buffer's length.

This class will take ownership of the buffer.

Definition at line 582 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::fromWkt ( QString  wkt)
static

static method that creates geometry from Wkt

Definition at line 401 of file qgsgeometry.cpp.

GEOSContextHandle_t QgsGeometry::getGEOSHandler ( )
static

return GEOS context handle

Note
added in 2.6
not available in Python

Definition at line 139 of file qgsgeometry.cpp.

bool QgsGeometry::insertVertex ( double  x,
double  y,
int  beforeVertex 
)

Insert a new vertex before the given vertex index, ring and item (first number is index 0) If the requested vertex number (beforeVertex.back()) is greater than the last actual vertex on the requested ring and item, it is assumed that the vertex is to be appended instead of inserted.

Returns false if atVertex does not correspond to a valid vertex on this geometry (including if this geometry is a Point). It is up to the caller to distinguish between these error conditions. (Or maybe we add another method to this object to help make the distinction?)

Definition at line 1723 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::interpolate ( double  distance)

Return interpolated point on line at distance.

Definition at line 5954 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::intersection ( QgsGeometry geometry)

Returns a geometry representing the points shared by this geometry and other.

Definition at line 5975 of file qgsgeometry.cpp.

bool QgsGeometry::intersects ( const QgsRectangle r) const

Test for intersection with a rectangle (uses GEOS)

Definition at line 3468 of file qgsgeometry.cpp.

bool QgsGeometry::intersects ( const QgsGeometry geometry) const

Test for intersection with a geometry (uses GEOS)

Definition at line 3476 of file qgsgeometry.cpp.

bool QgsGeometry::isGeosEmpty ( )

check if geometry is empty using GEOS

Definition at line 6388 of file qgsgeometry.cpp.

bool QgsGeometry::isGeosEqual ( QgsGeometry g)

compare geometries using GEOS

Definition at line 6383 of file qgsgeometry.cpp.

bool QgsGeometry::isGeosValid ( )

check validity using GEOS

Definition at line 6365 of file qgsgeometry.cpp.

bool QgsGeometry::isMultipart ( ) const

Returns true if wkb of the geometry is of WKBMulti* type.

Definition at line 681 of file qgsgeometry.cpp.

double QgsGeometry::length ( )

get length of geometry using GEOS

Definition at line 5688 of file qgsgeometry.cpp.

int QgsGeometry::makeDifference ( QgsGeometry other)

Changes this geometry such that it does not intersect the other geometry.

Parameters
othergeometry that should not be intersect
Returns
0 in case of success

Definition at line 3172 of file qgsgeometry.cpp.

bool QgsGeometry::moveVertex ( double  x,
double  y,
int  atVertex 
)

Moves the vertex at the given position number and item (first number is index 0) to the given coordinates.

Returns false if atVertex does not correspond to a valid vertex on this geometry

Definition at line 1243 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::offsetCurve ( double  distance,
int  segments,
int  joinStyle,
double  mitreLimit 
)

Returns an offset line at a given distance and side from an input line.

See buffer() method for details on parameters.

Note
added in 2.4
needs GEOS >= 3.3 - otherwise always returns 0

Definition at line 5764 of file qgsgeometry.cpp.

QgsGeometry & QgsGeometry::operator= ( QgsGeometry const &  rhs)

assignments will prompt a deep copy of the object

Note
not available in python bindings

Definition at line 551 of file qgsgeometry.cpp.

bool QgsGeometry::overlaps ( const QgsGeometry geometry) const

Test for if geometry overlaps another (uses GEOS)

Definition at line 3579 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::pointOnSurface ( )

Returns a point within a geometry.

Definition at line 5924 of file qgsgeometry.cpp.

int QgsGeometry::reshapeGeometry ( const QList< QgsPoint > &  reshapeWithLine)

Replaces a part of this geometry with another line.

Returns
0 in case of success

Definition at line 3065 of file qgsgeometry.cpp.

int QgsGeometry::rotate ( double  rotation,
const QgsPoint center 
)

Rotate this geometry around the Z axis.

Note
added in 2.8
Parameters
rotationclockwise rotation in degrees
centerrotation center
Returns
0 in case of success

Definition at line 2857 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::simplify ( double  tolerance)

Returns a simplified version of this geometry using a specified tolerance value.

Definition at line 5784 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::smooth ( const unsigned int  iterations = 1,
const double  offset = 0.25 
)

Smooths a geometry by rounding off corners using the Chaikin algorithm.

This operation roughly doubles the number of vertices in a geometry.

Parameters
iterationsnumber of smoothing iterations to run. More iterations results in a smoother geometry
offsetfraction of line to create new vertices along, between 0 and 1.0 eg the default value of 0.25 will create new vertices 25% and 75% along each line segment of the geometry for each iteration. Smaller values result in "tighter" smoothing.
Note
added in 2.9

Definition at line 5799 of file qgsgeometry.cpp.

int QgsGeometry::splitGeometry ( const QList< QgsPoint > &  splitLine,
QList< QgsGeometry * > &  newGeometries,
bool  topological,
QList< QgsPoint > &  topologyTestPoints 
)

Splits this geometry according to a given line.

Note that the geometry is only split once. If there are several intersections between geometry and splitLine, only the first one is considered.

Parameters
splitLinethe line that splits the geometry
[out]newGeometrieslist of new geometries that have been created with the split
topologicaltrue if topological editing is enabled
[out]topologyTestPointspoints that need to be tested for topological completeness in the dataset
Returns
0 in case of success, 1 if geometry has not been split, error else

Definition at line 2985 of file qgsgeometry.cpp.

double QgsGeometry::sqrDistToVertexAt ( QgsPoint point,
int  atVertex 
)

Returns the squared cartesian distance between the given point to the given vertex index (vertex at the given position number, ring and item (first number is index 0))

Definition at line 2046 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::symDifference ( QgsGeometry geometry)

Returns a Geometry representing the points making up this Geometry that do not make up other.

Definition at line 6051 of file qgsgeometry.cpp.

bool QgsGeometry::touches ( const QgsGeometry geometry) const

Test for if geometry touch another (uses GEOS)

Definition at line 3574 of file qgsgeometry.cpp.

int QgsGeometry::transform ( const QgsCoordinateTransform ct)

Transform this geometry as described by CoordinateTranasform ct.

Returns
0 in case of success

Definition at line 2865 of file qgsgeometry.cpp.

int QgsGeometry::transform ( const QTransform &  ct)

Transform this geometry as described by QTransform ct.

Note
added in 2.8
Returns
0 in case of success

Definition at line 2732 of file qgsgeometry.cpp.

int QgsGeometry::translate ( double  dx,
double  dy 
)

Translate this geometry by dx, dy.

Returns
0 in case of success

Definition at line 2852 of file qgsgeometry.cpp.

QGis::GeometryType QgsGeometry::type ( ) const

Returns type of the vector.

Definition at line 651 of file qgsgeometry.cpp.

QgsGeometry * QgsGeometry::unaryUnion ( const QList< QgsGeometry * > &  geometryList)
static

compute the unary union on a list of geometries.

May be faster than an iterative union on a set of geometries.

Parameters
geometryLista list of QgsGeometry* as input
Returns
the new computed QgsGeometry, or null

Definition at line 6732 of file qgsgeometry.cpp.

void QgsGeometry::validateGeometry ( QList< Error > &  errors)

Validate geometry and produce a list of geometry errors.

Definition at line 6360 of file qgsgeometry.cpp.

QgsPoint QgsGeometry::vertexAt ( int  atVertex)

Returns coordinates of a vertex.

Parameters
atVertexindex of the vertex
Returns
Coordinates of the vertex or QgsPoint(0,0) on error

Definition at line 1868 of file qgsgeometry.cpp.

bool QgsGeometry::within ( const QgsGeometry geometry) const

Test for if geometry is within another (uses GEOS)

Definition at line 3584 of file qgsgeometry.cpp.

size_t QgsGeometry::wkbSize ( ) const

Returns the size of the WKB in asWkb().

Definition at line 612 of file qgsgeometry.cpp.

QGis::WkbType QgsGeometry::wkbType ( ) const

Returns type of wkb (point / linestring / polygon etc.)

Definition at line 634 of file qgsgeometry.cpp.


The documentation for this class was generated from the following files: