QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
qgsmultipoint.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmultipoint.h
3 -------------------------------------------------------------------
4Date : 29 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 QGSMULTIPOINT_H
17#define QGSMULTIPOINT_H
18
19#include "qgis_core.h"
20#include "qgis_sip.h"
22
29class CORE_EXPORT QgsMultiPoint: public QgsGeometryCollection
30{
31 public:
32
37
38#ifndef SIP_RUN
39
45 QgsPoint *pointN( int index );
46#else
47
55 SIP_PYOBJECT pointN( int index ) SIP_TYPEHINT( QgsPoint );
56 % MethodCode
57 if ( a0 < 0 || a0 >= sipCpp->numGeometries() )
58 {
59 PyErr_SetString( PyExc_IndexError, QByteArray::number( a0 ) );
60 sipIsErr = 1;
61 }
62 else
63 {
64 return sipConvertFromType( sipCpp->pointN( a0 ), sipType_QgsPoint, NULL );
65 }
66 % End
67#endif
68
69#ifndef SIP_RUN
70
78 const QgsPoint *pointN( int index ) const;
79#endif
80
81 QString geometryType() const override;
82 QgsMultiPoint *clone() const override SIP_FACTORY;
83 QgsMultiPoint *toCurveType() const override SIP_FACTORY;
84 bool fromWkt( const QString &wkt ) override;
85 void clear() override;
86 QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
87 QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
88 json asJsonObject( int precision = 17 ) const override SIP_SKIP;
89 int nCoordinates() const override SIP_HOLDGIL;
91 bool insertGeometry( QgsAbstractGeometry *g SIP_TRANSFER, int index ) override;
93 int vertexNumberFromVertexId( QgsVertexId id ) const override;
94 double segmentLength( QgsVertexId startVertex ) const override;
95 bool isValid( QString &error SIP_OUT, Qgis::GeometryValidityFlags flags = Qgis::GeometryValidityFlags() ) const override SIP_HOLDGIL;
96
97#ifndef SIP_RUN
98 void filterVertices( const std::function< bool( const QgsPoint & ) > &filter ) override;
99
107 inline static const QgsMultiPoint *cast( const QgsAbstractGeometry *geom )
108 {
109 if ( geom && QgsWkbTypes::flatType( geom->wkbType() ) == QgsWkbTypes::MultiPoint )
110 return static_cast<const QgsMultiPoint *>( geom );
111 return nullptr;
112 }
113#endif
114
116
117#ifdef SIP_RUN
118 SIP_PYOBJECT __repr__();
119 % MethodCode
120 QString wkt = sipCpp->asWkt();
121 if ( wkt.length() > 1000 )
122 wkt = wkt.left( 1000 ) + QStringLiteral( "..." );
123 QString str = QStringLiteral( "<QgsMultiPoint: %1>" ).arg( wkt );
124 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
125 % End
126#endif
127
128 protected:
129
130 bool wktOmitChildType() const override;
131
132};
133
134// clazy:excludeall=qstring-allocations
135
136#endif // QGSMULTIPOINT_H
Abstract base class for all geometries.
AxisOrder
Axis order for GML generation.
QgsWkbTypes::Type wkbType() const SIP_HOLDGIL
Returns the WKB type of the geometry.
Geometry collection.
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.
bool fromWkt(const QString &wkt) override
Sets the geometry from a WKT string.
void clear() override
Clears the geometry, ie reset it to a null geometry.
QString geometryType() const override SIP_HOLDGIL
Returns a unique string representing the geometry type.
virtual bool insertGeometry(QgsAbstractGeometry *g, int index)
Inserts a geometry before a specified index and takes ownership.
int vertexNumberFromVertexId(QgsVertexId id) const override
Returns the vertex number corresponding to a vertex id.
QgsAbstractGeometry * boundary() const override
Returns the closure of the combinatorial boundary of the geometry (ie the topological boundary of the...
bool isValid(QString &error, Qgis::GeometryValidityFlags flags=Qgis::GeometryValidityFlags()) const override
Checks validity of the geometry, and returns true if the geometry is valid.
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.
int nCoordinates() const override
Returns the number of nodes contained in the geometry.
QgsGeometryCollection * clone() const override
Clones the geometry by performing a deep copy.
QgsGeometryCollection * createEmptyWithSameType() const override
Creates a new geometry with the same class and same WKB type as the original and transfers ownership.
virtual bool addGeometry(QgsAbstractGeometry *g)
Adds a geometry and takes ownership. Returns true in case of success.
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.
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.
Multi point geometry collection.
Definition: qgsmultipoint.h:30
static const QgsMultiPoint * cast(const QgsAbstractGeometry *geom)
Cast the geom to a QgsLineString.
Point geometry type, with support for z-dimension and m-values.
Definition: qgspoint.h:49
static Type flatType(Type type) SIP_HOLDGIL
Returns the flat type for a WKB type.
Definition: qgswkbtypes.h:732
#define str(x)
Definition: qgis.cpp:37
#define SIP_TYPEHINT(type)
Definition: qgis_sip.h:227
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_TRANSFER
Definition: qgis_sip.h:36
#define SIP_OUT
Definition: qgis_sip.h:58
#define SIP_HOLDGIL
Definition: qgis_sip.h:166
#define SIP_FACTORY
Definition: qgis_sip.h:76
int precision
Utility class for identifying a unique vertex within a geometry.
Definition: qgsvertexid.h:31