QGIS API Documentation 3.99.0-Master (18a1e75d814)
Loading...
Searching...
No Matches
qgsgeometryfactory.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsgeometryfactory.h
3 -----------------------
4 begin : September 2014
5 copyright : (C) 2014 by Marco Hugentobler
6 email : marco at sourcepole dot ch
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSGEOMETRYFACTORY_H
19#define QGSGEOMETRYFACTORY_H
20
21
22#include <memory>
23
24#include "qgis_core.h"
25#include "qgswkbtypes.h"
26
27#include <QString>
28
29#define SIP_NO_FILE
30
32class QgsLineString;
33class QgsConstWkbPtr;
34class QgsRectangle;
36class QgsMultiPoint;
38class QgsPolygon;
39class QgsMultiPolygon;
40
41//compatibility with old classes
42#include "qgspointxy.h"
43typedef QVector<QgsPointXY> QgsPolylineXY;
44typedef QVector<QgsPolylineXY> QgsPolygonXY;
45typedef QVector<QgsPointXY> QgsMultiPointXY;
46typedef QVector<QgsPolylineXY> QgsMultiPolylineXY;
47typedef QVector<QgsPolygonXY> QgsMultiPolygonXY;
48
55class CORE_EXPORT QgsGeometryFactory
56{
57 public:
58
63 static std::unique_ptr< QgsAbstractGeometry > geomFromWkb( QgsConstWkbPtr &wkb );
64
68 static std::unique_ptr< QgsAbstractGeometry > geomFromWkt( const QString &text );
69
71 static std::unique_ptr< QgsAbstractGeometry > fromPointXY( const QgsPointXY &point );
73 static std::unique_ptr<QgsMultiPoint> fromMultiPointXY( const QgsMultiPointXY &multipoint );
75 static std::unique_ptr< QgsAbstractGeometry > fromPolylineXY( const QgsPolylineXY &polyline );
77 static std::unique_ptr<QgsMultiLineString> fromMultiPolylineXY( const QgsMultiPolylineXY &multiline );
79 static std::unique_ptr<QgsPolygon> fromPolygonXY( const QgsPolygonXY &polygon );
81 static std::unique_ptr<QgsMultiPolygon> fromMultiPolygonXY( const QgsMultiPolygonXY &multipoly );
83 static std::unique_ptr< QgsAbstractGeometry > geomFromWkbType( Qgis::WkbType t );
84
89 static std::unique_ptr< QgsGeometryCollection > createCollectionOfType( Qgis::WkbType type );
90
91 private:
92 static std::unique_ptr< QgsLineString > linestringFromPolyline( const QgsPolylineXY &polyline );
93};
94
95#endif // QGSGEOMETRYFACTORY_H
WkbType
The WKB type describes the number of dimensions a geometry has.
Definition qgis.h:291
Abstract base class for all geometries.
A const WKB pointer.
Definition qgswkbptr.h:139
Contains geometry creation routines.
static std::unique_ptr< QgsMultiPolygon > fromMultiPolygonXY(const QgsMultiPolygonXY &multipoly)
Construct geometry from a multipolygon.
static std::unique_ptr< QgsAbstractGeometry > geomFromWkb(QgsConstWkbPtr &wkb)
Construct geometry from a WKB string.
static std::unique_ptr< QgsGeometryCollection > createCollectionOfType(Qgis::WkbType type)
Returns a new geometry collection matching a specified WKB type.
static std::unique_ptr< QgsAbstractGeometry > fromPolylineXY(const QgsPolylineXY &polyline)
Construct geometry from a polyline.
static std::unique_ptr< QgsMultiPoint > fromMultiPointXY(const QgsMultiPointXY &multipoint)
Construct geometry from a multipoint.
static std::unique_ptr< QgsAbstractGeometry > geomFromWkt(const QString &text)
Construct geometry from a WKT string.
static std::unique_ptr< QgsMultiLineString > fromMultiPolylineXY(const QgsMultiPolylineXY &multiline)
Construct geometry from a multipolyline.
static std::unique_ptr< QgsAbstractGeometry > fromPointXY(const QgsPointXY &point)
Construct geometry from a point.
static std::unique_ptr< QgsPolygon > fromPolygonXY(const QgsPolygonXY &polygon)
Construct geometry from a polygon.
static std::unique_ptr< QgsAbstractGeometry > geomFromWkbType(Qgis::WkbType t)
Returns empty geometry from wkb type.
Line string geometry type, with support for z-dimension and m-values.
Multi line string geometry collection.
Multi point geometry collection.
Multi polygon geometry collection.
Represents a 2D point.
Definition qgspointxy.h:62
Polygon geometry type.
Definition qgspolygon.h:37
A rectangle specified with double values.
QVector< QgsPolylineXY > QgsPolygonXY
Polygon: first item of the list is outer ring, inner rings (if any) start from second item.
Definition qgsgeometry.h:92
QVector< QgsPolylineXY > QgsMultiPolylineXY
A collection of QgsPolylines that share a common collection of attributes.
QVector< QgsPointXY > QgsMultiPointXY
A collection of QgsPoints that share a common collection of attributes.
Definition qgsgeometry.h:98
QVector< QgsPointXY > QgsPolylineXY
Polyline as represented as a vector of two-dimensional points.
Definition qgsgeometry.h:63
QVector< QgsPolygonXY > QgsMultiPolygonXY
A collection of QgsPolygons that share a common collection of attributes.
QVector< QgsPolylineXY > QgsPolygonXY
QVector< QgsPolylineXY > QgsMultiPolylineXY
QVector< QgsPointXY > QgsMultiPointXY
QVector< QgsPointXY > QgsPolylineXY
QVector< QgsPolygonXY > QgsMultiPolygonXY