QGIS API Documentation  3.14.0-Pi (9f7028fd23)
qgsmultipolygon.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmultipolygon.h
3  -------------------------------------------------------------------
4 Date : 28 Oct 2014
5 Copyright : (C) 2014 by Marco Hugentobler
6 email : 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 
29 class CORE_EXPORT QgsMultiPolygon: public QgsMultiSurface
30 {
31  public:
33  QString geometryType() const override;
34  void clear() override;
35  QgsMultiPolygon *clone() const override SIP_FACTORY;
36  bool fromWkt( const QString &wkt ) override;
37  QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
38  QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
39  json asJsonObject( int precision = 17 ) const override SIP_SKIP;
40  bool addGeometry( QgsAbstractGeometry *g SIP_TRANSFER ) override;
41  bool insertGeometry( QgsAbstractGeometry *g SIP_TRANSFER, int index ) override;
42 
46  QgsMultiSurface *toCurveType() const override SIP_FACTORY;
47 
48  QgsAbstractGeometry *boundary() const override SIP_FACTORY;
49 #ifndef SIP_RUN
50 
58  inline const QgsMultiPolygon *cast( const QgsAbstractGeometry *geom ) const
59  {
60  if ( geom && QgsWkbTypes::flatType( geom->wkbType() ) == QgsWkbTypes::MultiPolygon )
61  return static_cast<const QgsMultiPolygon *>( geom );
62  return nullptr;
63  }
64 #endif
65 
67 
68 #ifdef SIP_RUN
69  SIP_PYOBJECT __repr__();
70  % MethodCode
71  QString wkt = sipCpp->asWkt();
72  if ( wkt.length() > 1000 )
73  wkt = wkt.left( 1000 ) + QStringLiteral( "..." );
74  QString str = QStringLiteral( "<QgsMultiPolygon: %1>" ).arg( wkt );
75  sipRes = PyUnicode_FromString( str.toUtf8().constData() );
76  % End
77 #endif
78 
79  protected:
80 
81  bool wktOmitChildType() const override;
82 };
83 
84 // clazy:excludeall=qstring-allocations
85 
86 #endif // QGSMULTIPOLYGON_H
QgsMultiSurface::asGml2
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.
Definition: qgsmultisurface.cpp:69
QgsAbstractGeometry::wkbType
QgsWkbTypes::Type wkbType() const
Returns the WKB type of the geometry.
Definition: qgsabstractgeometry.h:189
QgsWkbTypes::MultiPolygon
@ MultiPolygon
Definition: qgswkbtypes.h:77
QgsMultiSurface::geometryType
QString geometryType() const override
Returns a unique string representing the geometry type.
Definition: qgsmultisurface.cpp:34
QgsMultiSurface
Multi surface geometry collection.
Definition: qgsmultisurface.h:29
QgsMultiSurface::createEmptyWithSameType
QgsMultiSurface * createEmptyWithSameType() const override
Creates a new geometry with the same class and same WKB type as the original and transfers ownership.
Definition: qgsmultisurface.cpp:45
SIP_FACTORY
#define SIP_FACTORY
Definition: qgis_sip.h:76
QgsMultiSurface::clone
QgsMultiSurface * clone() const override
Clones the geometry by performing a deep copy.
Definition: qgsmultisurface.cpp:52
precision
int precision
Definition: qgswfsgetfeature.cpp:103
SIP_SKIP
#define SIP_SKIP
Definition: qgis_sip.h:126
QgsAbstractGeometry::AxisOrder
AxisOrder
Axis order for GML generation.
Definition: qgsabstractgeometry.h:128
qgis_sip.h
SIP_TRANSFER
#define SIP_TRANSFER
Definition: qgis_sip.h:36
QgsGeometryCollection::wktOmitChildType
virtual bool wktOmitChildType() const
Returns whether child type names are omitted from Wkt representations of the collection.
Definition: qgsgeometrycollection.cpp:952
QgsMultiPolygon
Multi polygon geometry collection.
Definition: qgsmultipolygon.h:29
QgsMultiSurface::clear
void clear() override
Clears the geometry, ie reset it to a null geometry.
Definition: qgsmultisurface.cpp:39
QgsMultiPolygon::cast
const QgsMultiPolygon * cast(const QgsAbstractGeometry *geom) const
Cast the geom to a QgsMultiPolygonV2.
Definition: qgsmultipolygon.h:58
QgsMultiSurface::toCurveType
QgsMultiSurface * toCurveType() const override
Returns the geometry converted to the more generic curve type.
Definition: qgsmultisurface.cpp:57
QgsAbstractGeometry
Abstract base class for all geometries.
Definition: qgsabstractgeometry.h:71
QgsMultiSurface::insertGeometry
bool insertGeometry(QgsAbstractGeometry *g, int index) override
Inserts a geometry before a specified index and takes ownership.
Definition: qgsmultisurface.cpp:169
QgsMultiSurface::asGml3
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.
Definition: qgsmultisurface.cpp:92
QgsMultiSurface::boundary
QgsAbstractGeometry * boundary() const override
Returns the closure of the combinatorial boundary of the geometry (ie the topological boundary of the...
Definition: qgsmultisurface.cpp:180
QgsMultiSurface::addGeometry
bool addGeometry(QgsAbstractGeometry *g) override
Adds a geometry and takes ownership. Returns true in case of success.
Definition: qgsmultisurface.cpp:145
qgsmultisurface.h
QgsWkbTypes::flatType
static Type flatType(Type type)
Returns the flat type for a WKB type.
Definition: qgswkbtypes.h:701
QgsMultiSurface::fromWkt
bool fromWkt(const QString &wkt) override
Sets the geometry from a WKT string.
Definition: qgsmultisurface.cpp:62
QgsMultiSurface::asJsonObject
json asJsonObject(int precision=17) const override
Returns a json object representation of the geometry.
Definition: qgsmultisurface.cpp:113