QGIS API Documentation 4.0.0-Norrköping (1ddcee3d0e4)
Loading...
Searching...
No Matches
qgsmultilinestring.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmultilinestring.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 QGSMULTILINESTRING_H
17#define QGSMULTILINESTRING_H
18
19#include "qgis_core.h"
20#include "qgis_sip.h"
21#include "qgsmulticurve.h"
22
23#include <QString>
24
25using namespace Qt::StringLiterals;
26
27class QgsLineString;
28
34class CORE_EXPORT QgsMultiLineString : public QgsMultiCurve
35{
36 public:
37 // clang-format off
42 // clang-format on
43
51 QgsMultiLineString( const QList< QgsLineString > &linestrings ) SIP_HOLDGIL;
52
60 QgsMultiLineString( const QList< QgsLineString * > &linestrings SIP_TRANSFER ) SIP_HOLDGIL;
61
62#ifndef SIP_RUN
63
69 QgsLineString *lineStringN( int index );
70#else
71// clang-format off
72
80 SIP_PYOBJECT lineStringN( int index ) SIP_TYPEHINT( QgsLineString );
81 % MethodCode
82 if ( a0 < 0 || a0 >= sipCpp->numGeometries() )
83 {
84 PyErr_SetString( PyExc_IndexError, QByteArray::number( a0 ) );
85 sipIsErr = 1;
86 }
87 else
88 {
89 return sipConvertFromType( sipCpp->lineStringN( a0 ), sipType_QgsLineString, NULL );
90 }
91 % End
92// clang-format on
93#endif
94
95#ifndef SIP_RUN
96
104 const QgsLineString *lineStringN( int index ) const;
105#endif
106
107 QString geometryType() const override SIP_HOLDGIL;
108 QgsMultiLineString *clone() const override SIP_FACTORY;
109 void clear() override;
110 bool fromWkt( const QString &wkt ) override;
111 QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
112 QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
113 json asJsonObject( int precision = 17 ) const override SIP_SKIP;
114 bool addGeometry( QgsAbstractGeometry *g SIP_TRANSFER ) override;
115 bool addGeometries( const QVector< QgsAbstractGeometry * > &geometries SIP_TRANSFER ) final;
116 bool insertGeometry( QgsAbstractGeometry *g SIP_TRANSFER, int index ) override;
117 QgsMultiLineString *simplifyByDistance( double tolerance ) const override SIP_FACTORY;
118
123 QgsMultiCurve *toCurveType() const override SIP_FACTORY;
124
125#ifndef SIP_RUN
126
135 inline static const QgsMultiLineString *cast( const QgsAbstractGeometry *geom ) // cppcheck-suppress duplInheritedMember
136 {
138 return static_cast<const QgsMultiLineString *>( geom );
139 return nullptr;
140 }
141
150 inline static QgsMultiLineString *cast( QgsAbstractGeometry *geom ) // cppcheck-suppress duplInheritedMember
151 {
153 return static_cast<QgsMultiLineString *>( geom );
154 return nullptr;
155 }
156#endif
157
159
160#ifdef SIP_RUN
161// clang-format off
162 SIP_PYOBJECT __repr__();
163 % MethodCode
164 QString wkt = sipCpp->asWkt();
165 if ( wkt.length() > 1000 )
166 wkt = wkt.left( 1000 ) + u"..."_s;
167 QString str = u"<QgsMultiLineString: %1>"_s.arg( wkt );
168 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
169 % End
170// clang-format on
171#endif
172
179 QgsMultiLineString *measuredLine( double start, double end ) const SIP_FACTORY;
180
181 protected:
182
183 bool wktOmitChildType() const override;
184};
185
186// clazy:excludeall=qstring-allocations
187
188#endif // QGSMULTILINESTRING_H
@ MultiLineString
MultiLineString.
Definition qgis.h:301
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.
Line string geometry type, with support for z-dimension and m-values.
QString geometryType() const override
Returns a unique string representing the geometry type.
json asJsonObject(int precision=17) const override
Returns a json object representation of the geometry.
QgsMultiCurve * simplifyByDistance(double tolerance) const override
Simplifies the geometry by applying the Douglas Peucker simplification by distance algorithm.
QgsMultiCurve * toCurveType() const override
Returns the geometry converted to the more generic curve type.
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.
bool insertGeometry(QgsAbstractGeometry *g, int index) override
Inserts a geometry before a specified index and takes ownership.
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.
QgsMultiCurve * createEmptyWithSameType() const override
Creates a new geometry with the same class and same WKB type as the original and transfers ownership.
bool addGeometry(QgsAbstractGeometry *g) override
Adds a geometry and takes ownership. Returns true in case of success.
bool addGeometries(const QVector< QgsAbstractGeometry * > &geometries) override
Adds a list of geometries to the collection, transferring ownership to the collection.
bool fromWkt(const QString &wkt) override
Sets the geometry from a WKT string.
QgsMultiCurve * clone() const override
Clones the geometry by performing a deep copy.
void clear() override
Clears the geometry, ie reset it to a null geometry.
Multi line string geometry collection.
static const QgsMultiLineString * cast(const QgsAbstractGeometry *geom)
Cast the geom to a QgsMultiLineString.
static QgsMultiLineString * cast(QgsAbstractGeometry *geom)
Cast the geom to a QgsMultiLineString.
QgsMultiLineString()
Constructor for an empty multilinestring geometry.
QgsLineString * lineStringN(int index)
Returns the line string with the specified index.
static Qgis::WkbType flatType(Qgis::WkbType type)
Returns the flat type for a WKB type.
#define SIP_TYPEHINT(type)
Definition qgis_sip.h:239
#define SIP_SKIP
Definition qgis_sip.h:133
#define SIP_TRANSFER
Definition qgis_sip.h:35
#define SIP_HOLDGIL
Definition qgis_sip.h:178
#define SIP_FACTORY
Definition qgis_sip.h:83