QGIS API Documentation  3.8.0-Zanzibar (11aff65)
qgsmultipoint.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmultipoint.h
3  -------------------------------------------------------------------
4 Date : 29 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 QGSMULTIPOINT_H
17 #define QGSMULTIPOINT_H
18 
19 #include "qgis_core.h"
20 #include "qgis_sip.h"
21 #include "qgsgeometrycollection.h"
22 
29 class CORE_EXPORT QgsMultiPoint: public QgsGeometryCollection
30 {
31  public:
32  QgsMultiPoint();
33 
34  QString geometryType() const override;
35  QgsMultiPoint *clone() const override SIP_FACTORY;
36  QgsMultiPoint *toCurveType() const override SIP_FACTORY;
37  bool fromWkt( const QString &wkt ) override;
38  void clear() override;
39  QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
40  QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
41  json asJsonObject( int precision = 17 ) const override SIP_SKIP;
42  int nCoordinates() const override;
43  bool addGeometry( QgsAbstractGeometry *g SIP_TRANSFER ) override;
44  bool insertGeometry( QgsAbstractGeometry *g SIP_TRANSFER, int index ) override;
45  QgsAbstractGeometry *boundary() const override SIP_FACTORY;
46  int vertexNumberFromVertexId( QgsVertexId id ) const override;
47  double segmentLength( QgsVertexId startVertex ) const override;
48  bool isValid( QString &error SIP_OUT, int flags = 0 ) const override;
49 
50 #ifndef SIP_RUN
51  void filterVertices( const std::function< bool( const QgsPoint & ) > &filter ) override;
52 
60  inline const QgsMultiPoint *cast( const QgsAbstractGeometry *geom ) const
61  {
62  if ( geom && QgsWkbTypes::flatType( geom->wkbType() ) == QgsWkbTypes::MultiPoint )
63  return static_cast<const QgsMultiPoint *>( geom );
64  return nullptr;
65  }
66 #endif
67 
69 
70 #ifdef SIP_RUN
71  SIP_PYOBJECT __repr__();
72  % MethodCode
73  QString wkt = sipCpp->asWkt();
74  if ( wkt.length() > 1000 )
75  wkt = wkt.left( 1000 ) + QStringLiteral( "..." );
76  QString str = QStringLiteral( "<QgsMultiPoint: %1>" ).arg( wkt );
77  sipRes = PyUnicode_FromString( str.toUtf8().constData() );
78  % End
79 #endif
80 
81  protected:
82 
83  bool wktOmitChildType() const override;
84 
85 };
86 
87 // clazy:excludeall=qstring-allocations
88 
89 #endif // QGSMULTIPOINT_H
int precision
void filterVertices(const std::function< bool(const QgsPoint &) > &filter) override
Filters the vertices from the geometry in place, removing any which do not return true for the filter...
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.
void clear() override
Clears the geometry, ie reset it to a null geometry.
Multi point geometry collection.
Definition: qgsmultipoint.h:29
bool fromWkt(const QString &wkt) override
Sets the geometry from a WKT string.
bool isValid(QString &error, int flags=0) const override
Checks validity of the geometry, and returns true if the geometry is valid.
QgsAbstractGeometry * boundary() const override
Returns the closure of the combinatorial boundary of the geometry (ie the topological boundary of the...
virtual bool wktOmitChildType() const
Returns whether child type names are omitted from Wkt representations of the collection.
double segmentLength(QgsVertexId startVertex) const override
Returns the length of the segment of the geometry which begins at startVertex.
virtual bool insertGeometry(QgsAbstractGeometry *g, int index)
Inserts a geometry before a specified index and takes ownership.
int nCoordinates() const override
Returns the number of nodes contained in the geometry.
Utility class for identifying a unique vertex within a geometry.
Geometry collection.
#define SIP_SKIP
Definition: qgis_sip.h:119
QgsGeometryCollection * createEmptyWithSameType() const override
Creates a new geometry with the same class and same WKB type as the original and transfers ownership...
#define SIP_TRANSFER
Definition: qgis_sip.h:36
QString geometryType() const override
Returns a unique string representing the geometry type.
#define SIP_FACTORY
Definition: qgis_sip.h:69
Abstract base class for all geometries.
QgsWkbTypes::Type wkbType() const
Returns the WKB type of the geometry.
int vertexNumberFromVertexId(QgsVertexId id) const override
Returns the vertex number corresponding to a vertex id.
Point geometry type, with support for z-dimension and m-values.
Definition: qgspoint.h:37
AxisOrder
Axis order for GML generation.
nlohmann::json json
Definition: qgsjsonutils.h:27
const QgsMultiPoint * cast(const QgsAbstractGeometry *geom) const
Cast the geom to a QgsLineString.
Definition: qgsmultipoint.h:60
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.
#define SIP_OUT
Definition: qgis_sip.h:51
QgsGeometryCollection * toCurveType() const override
Returns the geometry converted to the more generic curve type.
json asJsonObject(int precision=17) const override
Returns a json object representation of the geometry.
QgsGeometryCollection * clone() const override
Clones the geometry by performing a deep copy.
static Type flatType(Type type)
Returns the flat type for a WKB type.
Definition: qgswkbtypes.h:430
virtual bool addGeometry(QgsAbstractGeometry *g)
Adds a geometry and takes ownership. Returns true in case of success.