QGIS API Documentation 3.99.0-Master (21b3aa880ba)
Loading...
Searching...
No Matches
qgsmultipolygon.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmultipolygon.h
3 -------------------------------------------------------------------
4Date : 28 Oct 2014
5Copyright : (C) 2014 by Marco Hugentobler
6email : marco.hugentobler at sourcepole dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSMULTIPOLYGON_H
17#define QGSMULTIPOLYGON_H
18
19#include "qgis_core.h"
20#include "qgis_sip.h"
21#include "qgsmultisurface.h"
22
23class QgsPolygon;
24
30class CORE_EXPORT QgsMultiPolygon: public QgsMultiSurface
31{
32 public:
33
38
46 QgsMultiPolygon( const QList< QgsPolygon > &polygons ) SIP_HOLDGIL;
47
55 QgsMultiPolygon( const QList< QgsPolygon * > &polygons SIP_TRANSFER ) SIP_HOLDGIL;
56
57#ifndef SIP_RUN
58
64 QgsPolygon *polygonN( int index );
65#else
66
74 SIP_PYOBJECT polygonN( int index ) SIP_TYPEHINT( QgsPolygon );
75 % MethodCode
76 if ( a0 < 0 || a0 >= sipCpp->numGeometries() )
77 {
78 PyErr_SetString( PyExc_IndexError, QByteArray::number( a0 ) );
79 sipIsErr = 1;
80 }
81 else
82 {
83 return sipConvertFromType( sipCpp->polygonN( a0 ), sipType_QgsPolygon, NULL );
84 }
85 % End
86#endif
87
88#ifndef SIP_RUN
89
97 const QgsPolygon *polygonN( int index ) const;
98#endif
99
100 QString geometryType() const override SIP_HOLDGIL;
101 void clear() override;
102 QgsMultiPolygon *clone() const override SIP_FACTORY;
103 bool fromWkt( const QString &wkt ) override;
104 QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
105 QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
106 json asJsonObject( int precision = 17 ) const override SIP_SKIP;
107 bool addGeometry( QgsAbstractGeometry *g SIP_TRANSFER ) override;
108 bool addGeometries( const QVector< QgsAbstractGeometry * > &geometries SIP_TRANSFER ) final;
109 bool insertGeometry( QgsAbstractGeometry *g SIP_TRANSFER, int index ) override;
110 QgsMultiPolygon *simplifyByDistance( double tolerance ) const override SIP_FACTORY;
111
116 QgsMultiSurface *toCurveType() const override SIP_FACTORY;
117
118 QgsAbstractGeometry *boundary() const override SIP_FACTORY;
119#ifndef SIP_RUN
120
129 inline static const QgsMultiPolygon *cast( const QgsAbstractGeometry *geom ) // cppcheck-suppress duplInheritedMember
130 {
132 return static_cast<const QgsMultiPolygon *>( geom );
133 return nullptr;
134 }
135
144 inline static QgsMultiPolygon *cast( QgsAbstractGeometry *geom ) // cppcheck-suppress duplInheritedMember
145 {
147 return static_cast<QgsMultiPolygon *>( geom );
148 return nullptr;
149 }
150#endif
151
153
154#ifdef SIP_RUN
155 SIP_PYOBJECT __repr__();
156 % MethodCode
157 QString wkt = sipCpp->asWkt();
158 if ( wkt.length() > 1000 )
159 wkt = wkt.left( 1000 ) + QStringLiteral( "..." );
160 QString str = QStringLiteral( "<QgsMultiPolygon: %1>" ).arg( wkt );
161 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
162 % End
163#endif
164
165 protected:
166
167 bool wktOmitChildType() const override;
168};
169
170// clazy:excludeall=qstring-allocations
171
172#endif // QGSMULTIPOLYGON_H
@ MultiPolygon
MultiPolygon.
Definition qgis.h:285
AxisOrder
Axis order for GML generation.
@ XY
X comes before Y (or lon before lat).
Qgis::WkbType wkbType() const
Returns the WKB type of the geometry.
QgsAbstractGeometry()=default
virtual bool wktOmitChildType() const
Returns whether child type names are omitted from Wkt representations of the collection.
Multi polygon geometry collection.
static const QgsMultiPolygon * cast(const QgsAbstractGeometry *geom)
Cast the geom to a QgsMultiPolygon.
static QgsMultiPolygon * cast(QgsAbstractGeometry *geom)
Cast the geom to a QgsMultiPolygon.
QgsMultiPolygon()
Constructor for an empty multipolygon geometry.
QgsPolygon * polygonN(int index)
Returns the polygon with the specified index.
QgsMultiSurface()
Constructor for an empty multisurface geometry.
QgsMultiSurface * simplifyByDistance(double tolerance) const override
Simplifies the geometry by applying the Douglas Peucker simplification by distance algorithm.
QDomElement asGml2(QDomDocument &doc, int precision=17, const QString &ns="gml", QgsAbstractGeometry::AxisOrder axisOrder=QgsAbstractGeometry::AxisOrder::XY) const override
Returns a GML2 representation of the geometry.
QString geometryType() const override
Returns a unique string representing the geometry type.
bool addGeometry(QgsAbstractGeometry *g) override
Adds a geometry and takes ownership. Returns true in case of success.
QDomElement asGml3(QDomDocument &doc, int precision=17, const QString &ns="gml", QgsAbstractGeometry::AxisOrder axisOrder=QgsAbstractGeometry::AxisOrder::XY) const override
Returns a GML3 representation of the geometry.
bool fromWkt(const QString &wkt) override
Sets the geometry from a WKT string.
QgsMultiSurface * clone() const override
Clones the geometry by performing a deep copy.
bool addGeometries(const QVector< QgsAbstractGeometry * > &geometries) override
Adds a list of geometries to the collection, transferring ownership to the collection.
json asJsonObject(int precision=17) const override
Returns a json object representation of the geometry.
QgsMultiSurface * createEmptyWithSameType() const override
Creates a new geometry with the same class and same WKB type as the original and transfers ownership.
QgsAbstractGeometry * boundary() const override
Returns the closure of the combinatorial boundary of the geometry (ie the topological boundary of the...
QgsMultiSurface * toCurveType() const override
Returns the geometry converted to the more generic curve type.
bool insertGeometry(QgsAbstractGeometry *g, int index) override
Inserts a geometry before a specified index and takes ownership.
void clear() override
Clears the geometry, ie reset it to a null geometry.
Polygon geometry type.
Definition qgspolygon.h:33
static Qgis::WkbType flatType(Qgis::WkbType type)
Returns the flat type for a WKB type.
#define SIP_TYPEHINT(type)
Definition qgis_sip.h:240
#define SIP_SKIP
Definition qgis_sip.h:134
#define SIP_TRANSFER
Definition qgis_sip.h:36
#define SIP_HOLDGIL
Definition qgis_sip.h:179
#define SIP_FACTORY
Definition qgis_sip.h:84