QGIS API Documentation
2.17.0Master (321017f)

A geometry is the spatial representation of a feature. More...
#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 (QgsAbstractGeometryV2 *geom)  
Creates a geometry from an abstract geometry object. More...  
~QgsGeometry ()  
Destructor. More...  
int  addPart (const QList< QgsPoint > &points, QGis::GeometryType geomType=QGis::UnknownGeometry) 
Adds a new part to a the geometry. More...  
int  addPart (const QgsPointSequenceV2 &points, QGis::GeometryType geomType=QGis::UnknownGeometry) 
Adds a new part to a the geometry. More...  
int  addPart (QgsAbstractGeometryV2 *part, QGis::GeometryType geomType=QGis::UnknownGeometry) 
Adds a new part to this geometry. More...  
int  addPart (GEOSGeometry *newPart) 
Adds a new island polygon to a multipolygon feature. More...  
int  addPart (const 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...  
int  addRing (QgsCurveV2 *ring) 
Adds a new ring to this geometry. More...  
void  adjacentVertices (int atVertex, int &beforeVertex, int &afterVertex) const 
Returns the indexes of the vertices before and after the given vertex index. More...  
double  angleAtVertex (int vertex) const 
Returns the bisector angle for this geometry at the specified vertex. More...  
double  area () const 
Returns the area of the geometry using GEOS. More...  
QList< QgsGeometry * >  asGeometryCollection () const 
Return contents of the geometry as a list of geometries. More...  
const GEOSGeometry *  asGeos (double precision=0) 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 (const QMap< QgsVectorLayer *, QSet< QgsFeatureId > > &ignoreFeatures=(QMap< QgsVectorLayer *, QSet< QgsFeatureId > >())) 
Modifies geometry to avoid intersections with the layers specified in project properties. More...  
QgsRectangle  boundingBox () const 
Returns the bounding box of this feature. More...  
QgsGeometry *  buffer (double distance, int segments) const 
Returns a buffer region around this geometry having the given width and with a specified number of segments used to approximate curves. More...  
QgsGeometry *  buffer (double distance, int segments, int endCapStyle, int joinStyle, double mitreLimit) const 
Returns a buffer region around the geometry, with additional style options. More...  
QgsGeometry *  centroid () const 
Returns the center of mass of a geometry. More...  
double  closestSegmentWithContext (const QgsPoint &point, QgsPoint &minDistPoint, int &afterVertex, double *leftOf=nullptr, double epsilon=DEFAULT_SEGMENT_EPSILON) const 
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) const 
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 and after the closest vertex. More...  
double  closestVertexWithContext (const QgsPoint &point, int &atVertex) const 
Searches for the closest vertex in this geometry to the given point. More...  
QgsGeometry *  combine (const QgsGeometry *geometry) const 
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...  
bool  convertToSingleType () 
Converts multi type geometry into single type geometry e.g. More...  
void  convertToStraightSegment () 
Converts the geometry to straight line segments, if it is a curved geometry type. More...  
QgsGeometry *  convertToType (QGis::GeometryType destType, bool destMultipart=false) const 
Try to convert the geometry to the requested type. More...  
QgsGeometry *  convexHull () const 
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...  
QgsGeometry *  difference (const QgsGeometry *geometry) const 
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 (const QgsGeometry &geom) const 
Returns the minimum distance between this geometry and another geometry, using GEOS. More...  
double  distanceToVertex (int vertex) const 
Returns the distance along this geometry from its first vertex to the specified vertex. More...  
void  draw (QPainter &p) const 
Draws the geometry onto a QPainter. More...  
bool  equals (const QgsGeometry *geometry) const 
Test for if geometry equals another (uses GEOS) More...  
QString  exportToGeoJSON (int precision=17) const 
Exports the geometry to GeoJSON. More...  
QString  exportToWkt (int precision=17) const 
Exports the geometry to WKT. More...  
QgsGeometry  extrude (double x, double y) 
Returns an extruded version of this geometry. More...  
void  fromGeos (GEOSGeometry *geos) 
Set the geometry, feeding in a geometry in GEOS format. More...  
void  fromWkb (unsigned char *wkb, int length) 
Set the geometry, feeding in the buffer containing OGC WellKnown Binary and the buffer's length. More...  
QgsAbstractGeometryV2 *  geometry () const 
Returns the underlying geometry store. 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...  
QgsGeometry *  interpolate (double distance) const 
Return interpolated point on line at distance. More...  
double  interpolateAngle (double distance) const 
Returns the angle parallel to the linestring or polygon boundary at the specified distance along the geometry. More...  
QgsGeometry *  intersection (const QgsGeometry *geometry) const 
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  isEmpty () const 
Returns true if the geometry is empty (ie, contains no underlying geometry accessible via geometry). More...  
bool  isGeosEmpty () const 
Check if the geometry is empty using GEOS. More...  
bool  isGeosEqual (const QgsGeometry &) const 
Compares the geometry with another geometry using GEOS. More...  
bool  isGeosValid () const 
Checks validity of the geometry using GEOS. More...  
bool  isMultipart () const 
Returns true if WKB of the geometry is of WKBMulti* type. More...  
double  length () const 
Returns the length of geometry using GEOS. More...  
double  lineLocatePoint (const QgsGeometry &point) const 
Returns a distance representing the location along this linestring of the closest point on this linestring geometry to the specified point. More...  
int  makeDifference (const QgsGeometry *other) 
Changes this geometry such that it does not intersect the other geometry. More...  
void  mapToPixel (const QgsMapToPixel &mtp) 
Transforms the geometry from map units to pixels in place. More...  
QgsGeometry  mergeLines () const 
Merges any connected lines in a LineString/MultiLineString geometry and converts them to single line strings. 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...  
bool  moveVertex (const QgsPointV2 &p, int atVertex) 
Moves the vertex at the given position number and item (first number is index 0) to the given coordinates. More...  
QgsGeometry  nearestPoint (const QgsGeometry &other) const 
Returns the nearest point on this geometry to another geometry. More...  
QgsGeometry *  offsetCurve (double distance, int segments, int joinStyle, double mitreLimit) const 
Returns an offset line at a given distance and side from an input line. More...  
operator QVariant () const  
Allows direct construction of QVariants from geometry. More...  
QgsGeometry &  operator= (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...  
QgsGeometry *  pointOnSurface () const 
Returns a point within a geometry. More...  
bool  requiresConversionToStraightSegments () const 
Returns true if the geometry is a curved geometry type which requires conversion to display as straight line segments. More...  
int  reshapeGeometry (const QList< QgsPoint > &reshapeWithLine) 
Replaces a part of this geometry with another line. More...  
int  rotate (double rotation, const QgsPoint ¢er) 
Rotate this geometry around the Z axis. More...  
void  setGeometry (QgsAbstractGeometryV2 *geometry) 
Sets the underlying geometry store. More...  
QgsGeometry  shortestLine (const QgsGeometry &other) const 
Returns the shortest line joining this geometry to another geometry. More...  
QgsGeometry *  simplify (double tolerance) const 
Returns a simplified version of this geometry using a specified tolerance value. More...  
QgsGeometry *  smooth (const unsigned int iterations=1, const double offset=0.25) const 
Smooths a geometry by rounding off corners using the Chaikin algorithm. More...  
QgsPolyline  smoothLine (const QgsPolyline &polyline, const unsigned int iterations=1, const double offset=0.25) const 
Smooths a polyline using the Chaikin algorithm. More...  
QgsPolygon  smoothPolygon (const QgsPolygon &polygon, const unsigned int iterations=1, const double offset=0.25) const 
Smooths a polygon 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) const 
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...  
QgsGeometry *  symDifference (const QgsGeometry *geometry) const 
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 CoordinateTransform 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 geometry as a QGis::GeometryType. More...  
void  validateGeometry (QList< Error > &errors) 
Validate geometry and produce a list of geometry errors. More...  
QgsPoint  vertexAt (int atVertex) const 
Returns coordinates of a vertex. More...  
bool  vertexIdFromVertexNr (int nr, QgsVertexId &id) const 
Calculates the vertex ID from a vertex number. More...  
int  vertexNrFromVertexId (QgsVertexId i) const 
Returns the vertex number corresponding to a vertex idd. More...  
bool  within (const QgsGeometry *geometry) const 
Test for if geometry is within another (uses GEOS) More...  
int  wkbSize () const 
Returns the size of the WKB in asWkb(). More...  
QGis::WkbType  wkbType () const 
Returns type of the geometry as a WKB type (point / linestring / polygon etc.) More...  
Static Public Member Functions  
static bool  compare (const QgsPolyline &p1, const QgsPolyline &p2, double epsilon=4 *std::numeric_limits< double >::epsilon()) 
Compares two polylines for equality within a specified tolerance. More...  
static bool  compare (const QgsPolygon &p1, const QgsPolygon &p2, double epsilon=4 *std::numeric_limits< double >::epsilon()) 
Compares two polygons for equality within a specified tolerance. More...  
static bool  compare (const QgsMultiPolygon &p1, const QgsMultiPolygon &p2, double epsilon=4 *std::numeric_limits< double >::epsilon()) 
Compares two multipolygons for equality within a specified tolerance. More...  
static void  convertPointList (const QList< QgsPoint > &input, QgsPointSequenceV2 &output) 
Upgrades a point list from QgsPoint to QgsPointV2. More...  
static void  convertPointList (const QgsPointSequenceV2 &input, QList< QgsPoint > &output) 
Downgrades a point list from QgsPointV2 to QgsPoint. More...  
static QgsGeometryEngine *  createGeometryEngine (const QgsAbstractGeometryV2 *geometry) 
Creates and returns a new geometry engine. More...  
static QgsPolygon  createPolygonFromQPolygonF (const QPolygonF &polygon) 
Creates a QgsPolygon from a QPolygonF. More...  
static QgsPolyline  createPolylineFromQPolygonF (const QPolygonF &polygon) 
Creates a QgsPolyline from a QPolygonF. More...  
static QgsGeometry *  fromMultiPoint (const QgsMultiPoint &multipoint) 
Creates a new geometry from a QgsMultiPoint object. More...  
static QgsGeometry *  fromMultiPolygon (const QgsMultiPolygon &multipoly) 
Creates a new geometry from a QgsMultiPolygon. More...  
static QgsGeometry *  fromMultiPolyline (const QgsMultiPolyline &multiline) 
Creates a new geometry from a QgsMultiPolyline object. More...  
static QgsGeometry *  fromPoint (const QgsPoint &point) 
Creates a new geometry from a QgsPoint object. More...  
static QgsGeometry *  fromPolygon (const QgsPolygon &polygon) 
Creates a new geometry from a QgsPolygon. More...  
static QgsGeometry *  fromPolyline (const QgsPolyline &polyline) 
Creates a new geometry from a QgsPolyline object. More...  
static QgsGeometry *  fromQPointF (QPointF point) 
Construct geometry from a QPointF. More...  
static QgsGeometry *  fromQPolygonF (const QPolygonF &polygon) 
Construct geometry from a QPolygonF. More...  
static QgsGeometry *  fromRect (const QgsRectangle &rect) 
Creates a new geometry from a QgsRectangle. More...  
static QgsGeometry *  fromWkt (const QString &wkt) 
Creates a new geometry from a WKT string. More...  
static GEOSContextHandle_t  getGEOSHandler () 
Return GEOS context handle. More...  
static QgsGeometry *  unaryUnion (const QList< QgsGeometry *> &geometryList) 
Compute the unary union on a list of geometries. More...  
A geometry is the spatial representation of a feature.
Since QGIS 2.10, QgsGeometry acts as a generic container for geometry objects. QgsGeometry is implicitly shared, so making copies of geometries is inexpensive. The geometry container class can also be stored inside a QVariant object.
The actual geometry representation is stored as a QgsAbstractGeometryV2 within the container, and can be accessed via the geometry method or set using the setGeometry method.
Definition at line 76 of file qgsgeometry.h.
QgsGeometry::QgsGeometry  (  ) 
Constructor.
Definition at line 65 of file qgsgeometry.cpp.
QgsGeometry::QgsGeometry  (  const QgsGeometry &  other  ) 
Copy constructor will prompt a deep copy of the object.
Definition at line 81 of file qgsgeometry.cpp.

explicit 
Creates a geometry from an abstract geometry object.
Ownership of geom is transferred.
Definition at line 75 of file qgsgeometry.cpp.
QgsGeometry::~QgsGeometry  (  ) 
Destructor.
Definition at line 69 of file qgsgeometry.cpp.
int QgsGeometry::addPart  (  const QList< QgsPoint > &  points, 
QGis::GeometryType  geomType = QGis::UnknownGeometry 

) 
Adds a new part to a the geometry.
points  points describing part to add 
geomType  default geometry type to create if no existing geometry 
Definition at line 659 of file qgsgeometry.cpp.
int QgsGeometry::addPart  (  const QgsPointSequenceV2 &  points, 
QGis::GeometryType  geomType = QGis::UnknownGeometry 

) 
Adds a new part to a the geometry.
points  points describing part to add 
geomType  default geometry type to create if no existing geometry 
Definition at line 666 of file qgsgeometry.cpp.
int QgsGeometry::addPart  (  QgsAbstractGeometryV2 *  part, 
QGis::GeometryType  geomType = QGis::UnknownGeometry 

) 
Adds a new part to this geometry.
part  part to add (ownership is transferred) 
geomType  default geometry type to create if no existing geometry 
Definition at line 682 of file qgsgeometry.cpp.
int QgsGeometry::addPart  (  GEOSGeometry *  newPart  ) 
Adds a new island polygon to a multipolygon feature.
newPart  part to add. Ownership is NOT transferred. 
Definition at line 722 of file qgsgeometry.cpp.
int QgsGeometry::addPart  (  const QgsGeometry *  newPart  ) 
Adds a new island polygon to a multipolygon feature.
Definition at line 712 of file qgsgeometry.cpp.
Adds a new ring to this geometry.
This makes only sense for polygon and multipolygons.
Definition at line 633 of file qgsgeometry.cpp.
int QgsGeometry::addRing  (  QgsCurveV2 *  ring  ) 
Adds a new ring to this geometry.
This makes only sense for polygon and multipolygons.
Definition at line 645 of file qgsgeometry.cpp.
void QgsGeometry::adjacentVertices  (  int  atVertex, 
int &  beforeVertex,  
int &  afterVertex  
)  const 
Returns the indexes of the vertices before and after the given vertex index.
This function takes into account the following factors:
Definition at line 426 of file qgsgeometry.cpp.
double QgsGeometry::angleAtVertex  (  int  vertex  )  const 
Returns the bisector angle for this geometry at the specified vertex.
vertex  vertex index to calculate bisector angle at 
Definition at line 386 of file qgsgeometry.cpp.
double QgsGeometry::area  (  )  const 
Returns the area of the geometry using GEOS.
Definition at line 1268 of file qgsgeometry.cpp.
QList< QgsGeometry * > QgsGeometry::asGeometryCollection  (  )  const 
Return contents of the geometry as a list of geometries.
Definition at line 1605 of file qgsgeometry.cpp.
const GEOSGeometry * QgsGeometry::asGeos  (  double  precision = 0  )  const 
Returns a geos geometry.
QgsGeometry retains ownership of the geometry, so the returned object should not be deleted.
precision  The precision of the grid to which to snap the geometry vertices. If 0, no snapping is performed. 
Definition at line 292 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 1152 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 1225 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 1176 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 1054 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 1115 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 1069 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.
Definition at line 1631 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.
Definition at line 1637 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 264 of file qgsgeometry.cpp.
int QgsGeometry::avoidIntersections  (  const QMap< QgsVectorLayer *, QSet< QgsFeatureId > > &  ignoreFeatures = ( QMap<QgsVectorLayer*, QSet<QgsFeatureId> >() )  ) 
Modifies geometry to avoid intersections with the layers specified in project properties.
ignoreFeatures  possibility to give a list of features where intersections should be ignored (not available in python bindings) 
Definition at line 1698 of file qgsgeometry.cpp.
QgsRectangle QgsGeometry::boundingBox  (  )  const 
Returns the bounding box of this feature.
Definition at line 851 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::buffer  (  double  distance, 
int  segments  
)  const 
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 1311 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::buffer  (  double  distance, 
int  segments,  
int  endCapStyle,  
int  joinStyle,  
double  mitreLimit  
)  const 
Returns a buffer region around the geometry, with additional style options.
distance  buffer distance 
segments  For round joins, number of segments to approximate quartercircle 
endCapStyle  Round (1) / Flat (2) / Square (3) end cap style 
joinStyle  Round (1) / Mitre (2) / Bevel (3) join style 
mitreLimit  Limit on the mitre ratio used for very sharp corners 
Definition at line 1327 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::centroid  (  )  const 
Returns the center of mass of a geometry.
Definition at line 1375 of file qgsgeometry.cpp.
double QgsGeometry::closestSegmentWithContext  (  const QgsPoint &  point, 
QgsPoint &  minDistPoint,  
int &  afterVertex,  
double *  leftOf = nullptr , 

double  epsilon = DEFAULT_SEGMENT_EPSILON 

)  const 
Searches for the closest segment of geometry to the given point.
point  Specifies the point for search 
minDistPoint  Receives the nearest point on the segment 
afterVertex  Receives index of the vertex after the closest segment. The vertex before the closest segment is always afterVertex  1 
leftOf  Out: Returns if the point lies on the left of right side of the segment ( < 0 means left, > 0 means right ) 
epsilon  epsilon for segment snapping (added in 1.8) 
Definition at line 603 of file qgsgeometry.cpp.
QgsPoint QgsGeometry::closestVertex  (  const QgsPoint &  point, 
int &  atVertex,  
int &  beforeVertex,  
int &  afterVertex,  
double &  sqrDist  
)  const 
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 and after the closest vertex.
point  point to search for 
atVertex  will be set to the vertex index of the closest found vertex 
beforeVertex  will be set to the vertex index of the previous vertex from the closest one. Will be set to 1 if not present. 
afterVertex  will be set to the vertex index of the next vertex after the closest one. Will be set to 1 if not present. 
sqrDist  will be set to the square distance between the closest vertex and the specified point 
Definition at line 346 of file qgsgeometry.cpp.
double QgsGeometry::closestVertexWithContext  (  const QgsPoint &  point, 
int &  atVertex  
)  const 
Searches for the closest vertex in this geometry to the given point.
point  Specifiest the point for search 
atVertex  Receives index of the closest vertex 
Definition at line 587 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::combine  (  const QgsGeometry *  geometry  )  const 
Returns a geometry representing all the points in this geometry and other (a union geometry operation).
Definition at line 1530 of file qgsgeometry.cpp.

static 
Compares two polylines for equality within a specified tolerance.
p1  first polyline 
p2  second polyline 
epsilon  maximum difference for coordinates between the polylines 
Definition at line 2001 of file qgsgeometry.cpp.

static 
Compares two polygons for equality within a specified tolerance.
p1  first polygon 
p2  second polygon 
epsilon  maximum difference for coordinates between the polygons 
Definition at line 2014 of file qgsgeometry.cpp.

static 
Compares two multipolygons for equality within a specified tolerance.
p1  first multipolygon 
p2  second multipolygon 
epsilon  maximum difference for coordinates between the multipolygons 
Definition at line 2028 of file qgsgeometry.cpp.
bool QgsGeometry::contains  (  const QgsPoint *  p  )  const 
Test for containment of a point (uses GEOS)
Definition at line 879 of file qgsgeometry.cpp.
bool QgsGeometry::contains  (  const QgsGeometry *  geometry  )  const 
Test for if geometry is contained in another (uses GEOS)
Definition at line 891 of file qgsgeometry.cpp.

static 
Upgrades a point list from QgsPoint to QgsPointV2.
input  list of QgsPoint objects to be upgraded 
output  destination for list of points converted to QgsPointV2 
Definition at line 1912 of file qgsgeometry.cpp.

static 
Downgrades a point list from QgsPointV2 to QgsPoint.
input  list of QgsPointV2 objects to be downgraded 
output  destination for list of points converted to QgsPoint 
Definition at line 1922 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 If it is already a multipart geometry, it will return true and not change the geometry.
Definition at line 1004 of file qgsgeometry.cpp.
bool QgsGeometry::convertToSingleType  (  ) 
Converts multi type geometry into single type geometry e.g.
a multipolygon into a polygon geometry. Only the first part of the multi geometry will be retained. If it is already a single part geometry, it will return true and not change the geometry.
Definition at line 1030 of file qgsgeometry.cpp.
void QgsGeometry::convertToStraightSegment  (  ) 
Converts the geometry to straight line segments, if it is a curved geometry type.
Definition at line 1771 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::convertToType  (  QGis::GeometryType  destType, 
bool  destMultipart = false 

)  const 
Try to convert the geometry to the requested type.
destType  the geometry type to be converted to 
destMultipart  determines if the output geometry will be multipart or not 
Definition at line 986 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::convexHull  (  )  const 
Returns the smallest convex polygon that contains all the points in the geometry.
Definition at line 1409 of file qgsgeometry.cpp.

static 
Creates and returns a new geometry engine.
Definition at line 2469 of file qgsgeometry.cpp.

static 
Creates a QgsPolygon from a QPolygonF.
polygon  source polygon 
Definition at line 1983 of file qgsgeometry.cpp.

static 
Creates a QgsPolyline from a QPolygonF.
polygon  source polygon 
Definition at line 1990 of file qgsgeometry.cpp.
bool QgsGeometry::crosses  (  const QgsGeometry *  geometry  )  const 
Test for if geometry crosses another (uses GEOS)
Definition at line 957 of file qgsgeometry.cpp.
bool QgsGeometry::deletePart  (  int  partNum  ) 
Delete part identified by the part number.
Definition at line 1679 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.
Definition at line 1666 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 485 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::difference  (  const QgsGeometry *  geometry  )  const 
Returns a geometry representing the points making up this geometry that do not make up other.
Definition at line 1564 of file qgsgeometry.cpp.
bool QgsGeometry::disjoint  (  const QgsGeometry *  geometry  )  const 
Test for if geometry is disjoint of another (uses GEOS)
Definition at line 902 of file qgsgeometry.cpp.
double QgsGeometry::distance  (  const QgsGeometry &  geom  )  const 
Returns the minimum distance between this geometry and another geometry, using GEOS.
Will return a negative value if a geometry is missing.
geom  geometry to find minimum distance to 
Definition at line 1300 of file qgsgeometry.cpp.
double QgsGeometry::distanceToVertex  (  int  vertex  )  const 
Returns the distance along this geometry from its first vertex to the specified vertex.
vertex  vertex index to calculate distance to 
Definition at line 370 of file qgsgeometry.cpp.
void QgsGeometry::draw  (  QPainter &  p  )  const 
Draws the geometry onto a QPainter.
p  destination QPainter 
Definition at line 1843 of file qgsgeometry.cpp.
bool QgsGeometry::equals  (  const QgsGeometry *  geometry  )  const 
Test for if geometry equals another (uses GEOS)
Definition at line 913 of file qgsgeometry.cpp.
QString QgsGeometry::exportToGeoJSON  (  int  precision = 17  )  const 
Exports the geometry to GeoJSON.
Definition at line 977 of file qgsgeometry.cpp.
QString QgsGeometry::exportToWkt  (  int  precision = 17  )  const 
Exports the geometry to WKT.
Definition at line 968 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::extrude  (  double  x, 
double  y  
) 
Returns an extruded version of this geometry.
Definition at line 1598 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.
Definition at line 338 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsMultiPoint object.
Definition at line 196 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsMultiPolygon.
Definition at line 216 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsMultiPolyline object.
Definition at line 206 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsPoint object.
Definition at line 166 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsPolygon.
Definition at line 186 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsPolyline object.
Definition at line 176 of file qgsgeometry.cpp.

static 
Construct geometry from a QPointF.
point  source QPointF 
Definition at line 1966 of file qgsgeometry.cpp.

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.
polygon  source QPolygonF 
Definition at line 1971 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsRectangle.
Definition at line 226 of file qgsgeometry.cpp.
void QgsGeometry::fromWkb  (  unsigned char *  wkb, 
int  length  
) 
Set the geometry, feeding in the buffer containing OGC WellKnown Binary and the buffer's length.
This class will take ownership of the buffer.
Definition at line 241 of file qgsgeometry.cpp.

static 
Creates a new geometry from a WKT string.
Definition at line 156 of file qgsgeometry.cpp.
QgsAbstractGeometryV2 * QgsGeometry::geometry  (  )  const 
Returns the underlying geometry store.
Definition at line 128 of file qgsgeometry.cpp.

static 
Return GEOS context handle.
Definition at line 1961 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 523 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::interpolate  (  double  distance  )  const 
Return interpolated point on line at distance.
Definition at line 1424 of file qgsgeometry.cpp.
double QgsGeometry::interpolateAngle  (  double  distance  )  const 
Returns the angle parallel to the linestring or polygon boundary at the specified distance along the geometry.
Angles are in radians, clockwise from north. If the distance coincides precisely at a node then the average angle from the segment either side of the node is returned.
distance  distance along geometry 
Definition at line 1462 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::intersection  (  const QgsGeometry *  geometry  )  const 
Returns a geometry representing the points shared by this geometry and other.
Definition at line 1517 of file qgsgeometry.cpp.
bool QgsGeometry::intersects  (  const QgsRectangle &  r  )  const 
Test for intersection with a rectangle (uses GEOS)
Definition at line 860 of file qgsgeometry.cpp.
bool QgsGeometry::intersects  (  const QgsGeometry *  geometry  )  const 
Test for intersection with a geometry (uses GEOS)
Definition at line 868 of file qgsgeometry.cpp.
bool QgsGeometry::isEmpty  (  )  const 
Returns true if the geometry is empty (ie, contains no underlying geometry accessible via geometry).
Definition at line 151 of file qgsgeometry.cpp.
bool QgsGeometry::isGeosEmpty  (  )  const 
Check if the geometry is empty using GEOS.
Definition at line 1742 of file qgsgeometry.cpp.
bool QgsGeometry::isGeosEqual  (  const QgsGeometry &  g  )  const 
Compares the geometry with another geometry using GEOS.
Definition at line 1731 of file qgsgeometry.cpp.
bool QgsGeometry::isGeosValid  (  )  const 
Checks validity of the geometry using GEOS.
Definition at line 1720 of file qgsgeometry.cpp.
bool QgsGeometry::isMultipart  (  )  const 
Returns true if WKB of the geometry is of WKBMulti* type.
Definition at line 329 of file qgsgeometry.cpp.
double QgsGeometry::length  (  )  const 
Returns the length of geometry using GEOS.
Definition at line 1290 of file qgsgeometry.cpp.
double QgsGeometry::lineLocatePoint  (  const QgsGeometry &  point  )  const 
Returns a distance representing the location along this linestring of the closest point on this linestring geometry to the specified point.
Ie, the returned value indicates how far along this linestring you need to traverse to get to the closest location where this linestring comes to the specified point.
point  point to seek proximity to 
Definition at line 1444 of file qgsgeometry.cpp.
int QgsGeometry::makeDifference  (  const QgsGeometry *  other  ) 
Changes this geometry such that it does not intersect the other geometry.
other  geometry that should not be intersect 
Definition at line 828 of file qgsgeometry.cpp.
void QgsGeometry::mapToPixel  (  const QgsMapToPixel &  mtp  ) 
Transforms the geometry from map units to pixels in place.
mtp  map to pixel transform 
Definition at line 1821 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::mergeLines  (  )  const 
Merges any connected lines in a LineString/MultiLineString geometry and converts them to single line strings.
Definition at line 1547 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 447 of file qgsgeometry.cpp.
bool QgsGeometry::moveVertex  (  const QgsPointV2 &  p, 
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 466 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::nearestPoint  (  const QgsGeometry &  other  )  const 
Returns the nearest point on this geometry to another geometry.
Definition at line 575 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::offsetCurve  (  double  distance, 
int  segments,  
int  joinStyle,  
double  mitreLimit  
)  const 
Returns an offset line at a given distance and side from an input line.
See buffer() method for details on parameters.
Definition at line 1343 of file qgsgeometry.cpp.

inline 
Allows direct construction of QVariants from geometry.
Definition at line 866 of file qgsgeometry.h.
QgsGeometry & QgsGeometry::operator=  (  QgsGeometry const &  rhs  ) 
Assignments will prompt a deep copy of the object.
Definition at line 87 of file qgsgeometry.cpp.
bool QgsGeometry::overlaps  (  const QgsGeometry *  geometry  )  const 
Test for if geometry overlaps another (uses GEOS)
Definition at line 935 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::pointOnSurface  (  )  const 
Returns a point within a geometry.
Definition at line 1392 of file qgsgeometry.cpp.
bool QgsGeometry::requiresConversionToStraightSegments  (  )  const 
Returns true if the geometry is a curved geometry type which requires conversion to display as straight line segments.
Definition at line 1785 of file qgsgeometry.cpp.
Replaces a part of this geometry with another line.
Definition at line 802 of file qgsgeometry.cpp.
int QgsGeometry::rotate  (  double  rotation, 
const QgsPoint &  center  
) 
Rotate this geometry around the Z axis.
rotation  clockwise rotation in degrees 
center  rotation center 
Definition at line 750 of file qgsgeometry.cpp.
void QgsGeometry::setGeometry  (  QgsAbstractGeometryV2 *  geometry  ) 
Sets the underlying geometry store.
Ownership of geometry is transferred.
Definition at line 133 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::shortestLine  (  const QgsGeometry &  other  )  const 
Returns the shortest line joining this geometry to another geometry.
Definition at line 581 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::simplify  (  double  tolerance  )  const 
Returns a simplified version of this geometry using a specified tolerance value.
Definition at line 1359 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::smooth  (  const unsigned int  iterations = 1 , 
const double  offset = 0.25 

)  const 
Smooths a geometry by rounding off corners using the Chaikin algorithm.
This operation roughly doubles the number of vertices in a geometry.
iterations  number of smoothing iterations to run. More iterations results in a smoother geometry 
offset  fraction 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. 
Definition at line 2041 of file qgsgeometry.cpp.
QgsPolyline QgsGeometry::smoothLine  (  const QgsPolyline &  polyline, 
const unsigned int  iterations = 1 , 

const double  offset = 0.25 

)  const 
Smooths a polyline using the Chaikin algorithm.
Definition at line 2105 of file qgsgeometry.cpp.
QgsPolygon QgsGeometry::smoothPolygon  (  const QgsPolygon &  polygon, 
const unsigned int  iterations = 1 , 

const double  offset = 0.25 

)  const 
Smooths a polygon using the Chaikin algorithm.
Definition at line 2124 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.
splitLine  the line that splits the geometry  
[out]  newGeometries  list of new geometries that have been created with the split 
topological  true if topological editing is enabled  
[out]  topologyTestPoints  points that need to be tested for topological completeness in the dataset 
Definition at line 767 of file qgsgeometry.cpp.
double QgsGeometry::sqrDistToVertexAt  (  QgsPoint &  point, 
int  atVertex  
)  const 
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 569 of file qgsgeometry.cpp.
QgsGeometry * QgsGeometry::symDifference  (  const QgsGeometry *  geometry  )  const 
Returns a geometry representing the points making up this geometry that do not make up other.
Definition at line 1581 of file qgsgeometry.cpp.
bool QgsGeometry::touches  (  const QgsGeometry *  geometry  )  const 
Test for if geometry touch another (uses GEOS)
Definition at line 924 of file qgsgeometry.cpp.
int QgsGeometry::transform  (  const QgsCoordinateTransform &  ct  ) 
Transform this geometry as described by CoordinateTransform ct.
Definition at line 1795 of file qgsgeometry.cpp.
int QgsGeometry::transform  (  const QTransform &  ct  ) 
Transform this geometry as described by QTransform ct.
Definition at line 1808 of file qgsgeometry.cpp.
int QgsGeometry::translate  (  double  dx, 
double  dy  
) 
Translate this geometry by dx, dy.
Definition at line 736 of file qgsgeometry.cpp.
QGis::GeometryType QgsGeometry::type  (  )  const 
Returns type of the geometry as a QGis::GeometryType.
Definition at line 320 of file qgsgeometry.cpp.

static 
Compute the unary union on a list of geometries.
May be faster than an iterative union on a set of geometries.
geometryList  a list of QgsGeometry* as input 
Definition at line 1753 of file qgsgeometry.cpp.
Validate geometry and produce a list of geometry errors.
Definition at line 1715 of file qgsgeometry.cpp.
QgsPoint QgsGeometry::vertexAt  (  int  atVertex  )  const 
Returns coordinates of a vertex.
atVertex  index of the vertex 
Definition at line 552 of file qgsgeometry.cpp.
bool QgsGeometry::vertexIdFromVertexNr  (  int  nr, 
QgsVertexId &  id  
)  const 
Calculates the vertex ID from a vertex number.
nr  vertex number 
id  reference to QgsVertexId for storing result 
Definition at line 1851 of file qgsgeometry.cpp.
int QgsGeometry::vertexNrFromVertexId  (  QgsVertexId  i  )  const 
Returns the vertex number corresponding to a vertex idd.
i  vertex id 
Definition at line 1883 of file qgsgeometry.cpp.
bool QgsGeometry::within  (  const QgsGeometry *  geometry  )  const 
Test for if geometry is within another (uses GEOS)
Definition at line 946 of file qgsgeometry.cpp.
int QgsGeometry::wkbSize  (  )  const 
Returns the size of the WKB in asWkb().
Definition at line 278 of file qgsgeometry.cpp.
QGis::WkbType QgsGeometry::wkbType  (  )  const 
Returns type of the geometry as a WKB type (point / linestring / polygon etc.)
Definition at line 307 of file qgsgeometry.cpp.