QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
qgswkbtypes.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgswkbtypes.cpp
3 ---------------
4 begin : January 2015
5 copyright : (C) 2015 by Marco Hugentobler
6 email : marco at sourcepole dot ch
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#include "qgswkbtypes.h"
19
20/***************************************************************************
21 * This class is considered CRITICAL and any change MUST be accompanied with
22 * full unit tests.
23 * See details in QEP #17
24 ****************************************************************************/
25
26
28{
29 WkbEntry( const QString &name, bool isMultiType, QgsWkbTypes::Type multiType, QgsWkbTypes::Type singleType, QgsWkbTypes::Type flatType, QgsWkbTypes::GeometryType geometryType,
30 bool hasZ, bool hasM )
31 : mName( name )
32 , mIsMultiType( isMultiType )
33 , mMultiType( multiType )
34 , mSingleType( singleType )
35 , mFlatType( flatType )
36 , mGeometryType( geometryType )
37 , mHasZ( hasZ )
38 , mHasM( hasM )
39 {}
40 QString mName;
46 bool mHasZ;
47 bool mHasM;
48};
49
50typedef QMap<QgsWkbTypes::Type, WkbEntry> WkbEntries;
51
53{
54 //register the known wkb types
57 //point
63 //linestring
69 //circularstring
74 //compoundcurve
79 //polygon
85 //triangle
90 //curvepolygon
95 //multipoint
101 //multiline
107 //multicurve
112 //multipolygon
118 //multisurface
123 //geometrycollection
128} ) )
129
130QgsWkbTypes::Type QgsWkbTypes::parseType( const QString &wktStr )
131{
132 const QString typestr = wktStr.left( wktStr.indexOf( '(' ) ).simplified().remove( ' ' );
133
134 QMap<QgsWkbTypes::Type, WkbEntry>::const_iterator it = sWkbEntries()->constBegin();
135 for ( ; it != sWkbEntries()->constEnd(); ++it )
136 {
137 if ( it.value().mName.compare( typestr, Qt::CaseInsensitive ) == 0 )
138 {
139 return it.key();
140 }
141 }
142 return Unknown;
143}
144
146{
147 const QMap< Type, WkbEntry >::const_iterator it = sWkbEntries()->constFind( type );
148 if ( it == sWkbEntries()->constEnd() )
149 {
150 return QString();
151 }
152 return it->mName;
153}
154
156{
157 switch ( type )
158 {
159 case Unknown: return QObject::tr( "Unknown" );
160 case Point: return QObject::tr( "Point" );
161 case LineString: return QObject::tr( "LineString" );
162 case Polygon: return QObject::tr( "Polygon" );
163 case Triangle: return QObject::tr( "Triangle" );
164 case MultiPoint: return QObject::tr( "MultiPoint" );
165 case MultiLineString: return QObject::tr( "MultiLine" );
166 case MultiPolygon: return QObject::tr( "MultiPolygon" );
167 case GeometryCollection: return QObject::tr( "GeometryCollection" );
168 case CircularString: return QObject::tr( "CircularString" );
169 case CompoundCurve: return QObject::tr( "CompoundCurve" );
170 case CurvePolygon: return QObject::tr( "CurvePolygon" );
171 case MultiCurve: return QObject::tr( "MultiCurve" );
172 case MultiSurface: return QObject::tr( "MultiSurface" );
173 case NoGeometry: return QObject::tr( "No Geometry" );
174 case PointZ: return QObject::tr( "PointZ" );
175 case LineStringZ: return QObject::tr( "LineStringZ" );
176 case PolygonZ: return QObject::tr( "PolygonZ" );
177 case TriangleZ: return QObject::tr( "TriangleZ" );
178 case MultiPointZ: return QObject::tr( "MultiPointZ" );
179 case MultiLineStringZ: return QObject::tr( "MultiLineZ" );
180 case MultiPolygonZ: return QObject::tr( "MultiPolygonZ" );
181 case GeometryCollectionZ: return QObject::tr( "GeometryCollectionZ" );
182 case CircularStringZ: return QObject::tr( "CircularStringZ" );
183 case CompoundCurveZ: return QObject::tr( "CompoundCurveZ" );
184 case CurvePolygonZ: return QObject::tr( "CurvePolygonZ" );
185 case MultiCurveZ: return QObject::tr( "MultiCurveZ" );
186 case MultiSurfaceZ: return QObject::tr( "MultiSurfaceZ" );
187 case PointM: return QObject::tr( "PointM" );
188 case LineStringM: return QObject::tr( "LineStringM" );
189 case PolygonM: return QObject::tr( "PolygonM" );
190 case TriangleM: return QObject::tr( "TriangleM" );
191 case MultiPointM: return QObject::tr( "MultiPointM" );
192 case MultiLineStringM: return QObject::tr( "MultiLineStringM" );
193 case MultiPolygonM: return QObject::tr( "MultiPolygonM" );
194 case GeometryCollectionM: return QObject::tr( "GeometryCollectionM" );
195 case CircularStringM: return QObject::tr( "CircularStringM" );
196 case CompoundCurveM: return QObject::tr( "CompoundCurveM" );
197 case CurvePolygonM: return QObject::tr( "CurvePolygonM" );
198 case MultiCurveM: return QObject::tr( "MultiCurveM" );
199 case MultiSurfaceM: return QObject::tr( "MultiSurfaceM" );
200 case PointZM: return QObject::tr( "PointZM" );
201 case LineStringZM: return QObject::tr( "LineStringZM" );
202 case PolygonZM: return QObject::tr( "PolygonZM" );
203 case MultiPointZM: return QObject::tr( "MultiPointZM" );
204 case MultiLineStringZM: return QObject::tr( "MultiLineZM" );
205 case MultiPolygonZM: return QObject::tr( "MultiPolygonZM" );
206 case GeometryCollectionZM: return QObject::tr( "GeometryCollectionZM" );
207 case CircularStringZM: return QObject::tr( "CircularStringZM" );
208 case CompoundCurveZM: return QObject::tr( "CompoundCurveZM" );
209 case CurvePolygonZM: return QObject::tr( "CurvePolygonZM" );
210 case MultiCurveZM: return QObject::tr( "MultiCurveZM" );
211 case MultiSurfaceZM: return QObject::tr( "MultiSurfaceZM" );
212 case TriangleZM: return QObject::tr( "TriangleZM" );
213 case Point25D: return QObject::tr( "Point25D" );
214 case LineString25D: return QObject::tr( "LineString25D" );
215 case Polygon25D: return QObject::tr( "Polygon25D" );
216 case MultiPoint25D: return QObject::tr( "MultiPoint25D" );
217 case MultiLineString25D: return QObject::tr( "MultiLineString25D" );
218 case MultiPolygon25D: return QObject::tr( "MultiPolygon25D" );
219 }
220 return QString();
221}
222
224{
225
226 switch ( type )
227 {
228 case PointGeometry:
229 return QStringLiteral( "Point" );
230 case LineGeometry:
231 return QStringLiteral( "Line" );
232 case PolygonGeometry:
233 return QStringLiteral( "Polygon" );
234 case UnknownGeometry:
235 return QStringLiteral( "Unknown geometry" );
236 case NullGeometry:
237 return QStringLiteral( "No geometry" );
238 default:
239 return QStringLiteral( "Invalid type" );
240 }
241
242
243}
244
245/***************************************************************************
246 * This class is considered CRITICAL and any change MUST be accompanied with
247 * full unit tests.
248 * See details in QEP #17
249 ****************************************************************************/
Handles storage of information regarding WKB types and their properties.
Definition: qgswkbtypes.h:42
static QString geometryDisplayString(GeometryType type) SIP_HOLDGIL
Returns a display string for a geometry type.
static QString translatedDisplayString(Type type) SIP_HOLDGIL
Returns a translated display string type for a WKB type, e.g., the geometry name used in WKT geometry...
GeometryType
The geometry types are used to group QgsWkbTypes::Type in a coarse way.
Definition: qgswkbtypes.h:141
Type
The WKB type describes the number of dimensions a geometry has.
Definition: qgswkbtypes.h:70
@ GeometryCollection
Definition: qgswkbtypes.h:79
@ GeometryCollectionZM
Definition: qgswkbtypes.h:118
@ GeometryCollectionM
Definition: qgswkbtypes.h:106
@ MultiLineStringZ
Definition: qgswkbtypes.h:91
@ MultiLineString25D
Definition: qgswkbtypes.h:129
@ GeometryCollectionZ
Definition: qgswkbtypes.h:93
static QString displayString(Type type) SIP_HOLDGIL
Returns a non-translated display string type for a WKB type, e.g., the geometry name used in WKT geom...
@ Unknown
Unknown/invalid format.
QMap< QgsWkbTypes::Type, WkbEntry > WkbEntries
Definition: qgswkbtypes.cpp:50
Q_GLOBAL_STATIC_WITH_ARGS(WkbEntries, sWkbEntries,({ { QgsWkbTypes::Unknown, WkbEntry(QLatin1String("Unknown"), false, QgsWkbTypes::Unknown, QgsWkbTypes::Unknown, QgsWkbTypes::Unknown, QgsWkbTypes::UnknownGeometry, false, false) }, { QgsWkbTypes::NoGeometry, WkbEntry(QLatin1String("NoGeometry"), false, QgsWkbTypes::NoGeometry, QgsWkbTypes::NoGeometry, QgsWkbTypes::NoGeometry, QgsWkbTypes::NullGeometry, false, false) }, {QgsWkbTypes::Point, WkbEntry(QLatin1String("Point"), false, QgsWkbTypes::MultiPoint, QgsWkbTypes::Point, QgsWkbTypes::Point, QgsWkbTypes::PointGeometry, false, false) }, {QgsWkbTypes::PointZ, WkbEntry(QLatin1String("PointZ"), false, QgsWkbTypes::MultiPointZ, QgsWkbTypes::PointZ, QgsWkbTypes::Point, QgsWkbTypes::PointGeometry, true, false) }, {QgsWkbTypes::PointM, WkbEntry(QLatin1String("PointM"), false, QgsWkbTypes::MultiPointM, QgsWkbTypes::PointM, QgsWkbTypes::Point, QgsWkbTypes::PointGeometry, false, true) }, {QgsWkbTypes::PointZM, WkbEntry(QLatin1String("PointZM"), false, QgsWkbTypes::MultiPointZM, QgsWkbTypes::PointZM, QgsWkbTypes::Point, QgsWkbTypes::PointGeometry, true, true) }, {QgsWkbTypes::Point25D, WkbEntry(QLatin1String("Point25D"), false, QgsWkbTypes::MultiPoint25D, QgsWkbTypes::Point25D, QgsWkbTypes::Point, QgsWkbTypes::PointGeometry, true, false) }, { QgsWkbTypes::LineString, WkbEntry(QLatin1String("LineString"), false, QgsWkbTypes::MultiLineString, QgsWkbTypes::LineString, QgsWkbTypes::LineString, QgsWkbTypes::LineGeometry, false, false) }, { QgsWkbTypes::LineStringZ, WkbEntry(QLatin1String("LineStringZ"), false, QgsWkbTypes::MultiLineStringZ, QgsWkbTypes::LineStringZ, QgsWkbTypes::LineString, QgsWkbTypes::LineGeometry, true, false) }, { QgsWkbTypes::LineStringM, WkbEntry(QLatin1String("LineStringM"), false, QgsWkbTypes::MultiLineStringM, QgsWkbTypes::LineStringM, QgsWkbTypes::LineString, QgsWkbTypes::LineGeometry, false, true) }, { QgsWkbTypes::LineStringZM, WkbEntry(QLatin1String("LineStringZM"), false, QgsWkbTypes::MultiLineStringZM, QgsWkbTypes::LineStringZM, QgsWkbTypes::LineString, QgsWkbTypes::LineGeometry, true, true) }, { QgsWkbTypes::LineString25D, WkbEntry(QLatin1String("LineString25D"), false, QgsWkbTypes::MultiLineString25D, QgsWkbTypes::LineString25D, QgsWkbTypes::LineString, QgsWkbTypes::LineGeometry, true, false) }, { QgsWkbTypes::CircularString, WkbEntry(QLatin1String("CircularString"), false, QgsWkbTypes::MultiCurve, QgsWkbTypes::CircularString, QgsWkbTypes::CircularString, QgsWkbTypes::LineGeometry, false, false) }, { QgsWkbTypes::CircularStringZ, WkbEntry(QLatin1String("CircularStringZ"), false, QgsWkbTypes::MultiCurveZ, QgsWkbTypes::CircularStringZ, QgsWkbTypes::CircularString, QgsWkbTypes::LineGeometry, true, false) }, { QgsWkbTypes::CircularStringM, WkbEntry(QLatin1String("CircularStringM"), false, QgsWkbTypes::MultiCurveM, QgsWkbTypes::CircularStringM, QgsWkbTypes::CircularString, QgsWkbTypes::LineGeometry, false, true) }, { QgsWkbTypes::CircularStringZM, WkbEntry(QLatin1String("CircularStringZM"), false, QgsWkbTypes::MultiCurveZM, QgsWkbTypes::CircularStringZM, QgsWkbTypes::CircularString, QgsWkbTypes::LineGeometry, true, true) }, { QgsWkbTypes::CompoundCurve, WkbEntry(QLatin1String("CompoundCurve"), false, QgsWkbTypes::MultiCurve, QgsWkbTypes::CompoundCurve, QgsWkbTypes::CompoundCurve, QgsWkbTypes::LineGeometry, false, false) }, { QgsWkbTypes::CompoundCurveZ, WkbEntry(QLatin1String("CompoundCurveZ"), false, QgsWkbTypes::MultiCurveZ, QgsWkbTypes::CompoundCurveZ, QgsWkbTypes::CompoundCurve, QgsWkbTypes::LineGeometry, true, false) }, { QgsWkbTypes::CompoundCurveM, WkbEntry(QLatin1String("CompoundCurveM"), false, QgsWkbTypes::MultiCurveM, QgsWkbTypes::CompoundCurveM, QgsWkbTypes::CompoundCurve, QgsWkbTypes::LineGeometry, false, true) }, { QgsWkbTypes::CompoundCurveZM, WkbEntry(QLatin1String("CompoundCurveZM"), false, QgsWkbTypes::MultiCurveZM, QgsWkbTypes::CompoundCurveZM, QgsWkbTypes::CompoundCurve, QgsWkbTypes::LineGeometry, true, true) }, { QgsWkbTypes::Polygon, WkbEntry(QLatin1String("Polygon"), false, QgsWkbTypes::MultiPolygon, QgsWkbTypes::Polygon, QgsWkbTypes::Polygon, QgsWkbTypes::PolygonGeometry, false, false) }, { QgsWkbTypes::PolygonZ, WkbEntry(QLatin1String("PolygonZ"), false, QgsWkbTypes::MultiPolygonZ, QgsWkbTypes::PolygonZ, QgsWkbTypes::Polygon, QgsWkbTypes::PolygonGeometry, true, false) }, { QgsWkbTypes::PolygonM, WkbEntry(QLatin1String("PolygonM"), false, QgsWkbTypes::MultiPolygonM, QgsWkbTypes::PolygonM, QgsWkbTypes::Polygon, QgsWkbTypes::PolygonGeometry, false, true) }, { QgsWkbTypes::PolygonZM, WkbEntry(QLatin1String("PolygonZM"), false, QgsWkbTypes::MultiPolygonZM, QgsWkbTypes::PolygonZM, QgsWkbTypes::Polygon, QgsWkbTypes::PolygonGeometry, true, true) }, { QgsWkbTypes::Polygon25D, WkbEntry(QLatin1String("Polygon25D"), false, QgsWkbTypes::MultiPolygon25D, QgsWkbTypes::Polygon25D, QgsWkbTypes::Polygon, QgsWkbTypes::PolygonGeometry, true, false) }, { QgsWkbTypes::Triangle, WkbEntry(QLatin1String("Triangle"), false, QgsWkbTypes::Unknown, QgsWkbTypes::Triangle, QgsWkbTypes::Triangle, QgsWkbTypes::PolygonGeometry, false, false) }, { QgsWkbTypes::TriangleZ, WkbEntry(QLatin1String("TriangleZ"), false, QgsWkbTypes::Unknown, QgsWkbTypes::TriangleZ, QgsWkbTypes::Triangle, QgsWkbTypes::PolygonGeometry, true, false) }, { QgsWkbTypes::TriangleM, WkbEntry(QLatin1String("TriangleM"), false, QgsWkbTypes::Unknown, QgsWkbTypes::TriangleM, QgsWkbTypes::Triangle, QgsWkbTypes::PolygonGeometry, false, true) }, { QgsWkbTypes::TriangleZM, WkbEntry(QLatin1String("TriangleZM"), false, QgsWkbTypes::Unknown, QgsWkbTypes::TriangleZM, QgsWkbTypes::Triangle, QgsWkbTypes::PolygonGeometry, true, true) }, { QgsWkbTypes::CurvePolygon, WkbEntry(QLatin1String("CurvePolygon"), false, QgsWkbTypes::MultiSurface, QgsWkbTypes::CurvePolygon, QgsWkbTypes::CurvePolygon, QgsWkbTypes::PolygonGeometry, false, false) }, { QgsWkbTypes::CurvePolygonZ, WkbEntry(QLatin1String("CurvePolygonZ"), false, QgsWkbTypes::MultiSurfaceZ, QgsWkbTypes::CurvePolygonZ, QgsWkbTypes::CurvePolygon, QgsWkbTypes::PolygonGeometry, true, false) }, { QgsWkbTypes::CurvePolygonM, WkbEntry(QLatin1String("CurvePolygonM"), false, QgsWkbTypes::MultiSurfaceM, QgsWkbTypes::CurvePolygonM, QgsWkbTypes::CurvePolygon, QgsWkbTypes::PolygonGeometry, false, true) }, { QgsWkbTypes::CurvePolygonZM, WkbEntry(QLatin1String("CurvePolygonZM"), false, QgsWkbTypes::MultiSurfaceZM, QgsWkbTypes::CurvePolygonZM, QgsWkbTypes::CurvePolygon, QgsWkbTypes::PolygonGeometry, true, true) }, { QgsWkbTypes::MultiPoint, WkbEntry(QLatin1String("MultiPoint"), true, QgsWkbTypes::MultiPoint, QgsWkbTypes::Point, QgsWkbTypes::MultiPoint, QgsWkbTypes::PointGeometry, false, false) }, { QgsWkbTypes::MultiPointZ, WkbEntry(QLatin1String("MultiPointZ"), true, QgsWkbTypes::MultiPointZ, QgsWkbTypes::PointZ, QgsWkbTypes::MultiPoint, QgsWkbTypes::PointGeometry, true, false) }, { QgsWkbTypes::MultiPointM, WkbEntry(QLatin1String("MultiPointM"), true, QgsWkbTypes::MultiPointM, QgsWkbTypes::PointM, QgsWkbTypes::MultiPoint, QgsWkbTypes::PointGeometry, false, true) }, { QgsWkbTypes::MultiPointZM, WkbEntry(QLatin1String("MultiPointZM"), true, QgsWkbTypes::MultiPointZM, QgsWkbTypes::PointZM, QgsWkbTypes::MultiPoint, QgsWkbTypes::PointGeometry, true, true) }, { QgsWkbTypes::MultiPoint25D, WkbEntry(QLatin1String("MultiPoint25D"), true, QgsWkbTypes::MultiPoint25D, QgsWkbTypes::Point25D, QgsWkbTypes::MultiPoint, QgsWkbTypes::PointGeometry, true, false) }, { QgsWkbTypes::MultiLineString, WkbEntry(QLatin1String("MultiLineString"), true, QgsWkbTypes::MultiLineString, QgsWkbTypes::LineString, QgsWkbTypes::MultiLineString, QgsWkbTypes::LineGeometry, false, false) }, { QgsWkbTypes::MultiLineStringZ, WkbEntry(QLatin1String("MultiLineStringZ"), true, QgsWkbTypes::MultiLineStringZ, QgsWkbTypes::LineStringZ, QgsWkbTypes::MultiLineString, QgsWkbTypes::LineGeometry, true, false) }, { QgsWkbTypes::MultiLineStringM, WkbEntry(QLatin1String("MultiLineStringM"), true, QgsWkbTypes::MultiLineStringM, QgsWkbTypes::LineStringM, QgsWkbTypes::MultiLineString, QgsWkbTypes::LineGeometry, false, true) }, { QgsWkbTypes::MultiLineStringZM, WkbEntry(QLatin1String("MultiLineStringZM"), true, QgsWkbTypes::MultiLineStringZM, QgsWkbTypes::LineStringZM, QgsWkbTypes::MultiLineString, QgsWkbTypes::LineGeometry, true, true) }, { QgsWkbTypes::MultiLineString25D, WkbEntry(QLatin1String("MultiLineString25D"), true, QgsWkbTypes::MultiLineString25D, QgsWkbTypes::LineString25D, QgsWkbTypes::MultiLineString, QgsWkbTypes::LineGeometry, true, false) }, { QgsWkbTypes::MultiCurve, WkbEntry(QLatin1String("MultiCurve"), true, QgsWkbTypes::MultiCurve, QgsWkbTypes::CompoundCurve, QgsWkbTypes::MultiCurve, QgsWkbTypes::LineGeometry, false, false) }, { QgsWkbTypes::MultiCurveZ, WkbEntry(QLatin1String("MultiCurveZ"), true, QgsWkbTypes::MultiCurveZ, QgsWkbTypes::CompoundCurveZ, QgsWkbTypes::MultiCurve, QgsWkbTypes::LineGeometry, true, false) }, { QgsWkbTypes::MultiCurveM, WkbEntry(QLatin1String("MultiCurveM"), true, QgsWkbTypes::MultiCurveM, QgsWkbTypes::CompoundCurveM, QgsWkbTypes::MultiCurve, QgsWkbTypes::LineGeometry, false, true) }, { QgsWkbTypes::MultiCurveZM, WkbEntry(QLatin1String("MultiCurveZM"), true, QgsWkbTypes::MultiCurveZM, QgsWkbTypes::CompoundCurveZM, QgsWkbTypes::MultiCurve, QgsWkbTypes::LineGeometry, true, true) }, { QgsWkbTypes::MultiPolygon, WkbEntry(QLatin1String("MultiPolygon"), true, QgsWkbTypes::MultiPolygon, QgsWkbTypes::Polygon, QgsWkbTypes::MultiPolygon, QgsWkbTypes::PolygonGeometry, false, false) }, { QgsWkbTypes::MultiPolygonZ, WkbEntry(QLatin1String("MultiPolygonZ"), true, QgsWkbTypes::MultiPolygonZ, QgsWkbTypes::PolygonZ, QgsWkbTypes::MultiPolygon, QgsWkbTypes::PolygonGeometry, true, false) }, { QgsWkbTypes::MultiPolygonM, WkbEntry(QLatin1String("MultiPolygonM"), true, QgsWkbTypes::MultiPolygonM, QgsWkbTypes::PolygonM, QgsWkbTypes::MultiPolygon, QgsWkbTypes::PolygonGeometry, false, true) }, { QgsWkbTypes::MultiPolygonZM, WkbEntry(QLatin1String("MultiPolygonZM"), true, QgsWkbTypes::MultiPolygonZM, QgsWkbTypes::PolygonZM, QgsWkbTypes::MultiPolygon, QgsWkbTypes::PolygonGeometry, true, true) }, { QgsWkbTypes::MultiPolygon25D, WkbEntry(QLatin1String("MultiPolygon25D"), true, QgsWkbTypes::MultiPolygon25D, QgsWkbTypes::Polygon25D, QgsWkbTypes::MultiPolygon, QgsWkbTypes::PolygonGeometry, true, false) }, { QgsWkbTypes::MultiSurface, WkbEntry(QLatin1String("MultiSurface"), true, QgsWkbTypes::MultiSurface, QgsWkbTypes::CurvePolygon, QgsWkbTypes::MultiSurface, QgsWkbTypes::PolygonGeometry, false, false) }, { QgsWkbTypes::MultiSurfaceZ, WkbEntry(QLatin1String("MultiSurfaceZ"), true, QgsWkbTypes::MultiSurfaceZ, QgsWkbTypes::CurvePolygonZ, QgsWkbTypes::MultiSurface, QgsWkbTypes::PolygonGeometry, true, false) }, { QgsWkbTypes::MultiSurfaceM, WkbEntry(QLatin1String("MultiSurfaceM"), true, QgsWkbTypes::MultiSurfaceM, QgsWkbTypes::CurvePolygonM, QgsWkbTypes::MultiSurface, QgsWkbTypes::PolygonGeometry, false, true) }, { QgsWkbTypes::MultiSurfaceZM, WkbEntry(QLatin1String("MultiSurfaceZM"), true, QgsWkbTypes::MultiSurfaceZM, QgsWkbTypes::CurvePolygonZM, QgsWkbTypes::MultiSurface, QgsWkbTypes::PolygonGeometry, true, true) }, { QgsWkbTypes::GeometryCollection, WkbEntry(QLatin1String("GeometryCollection"), true, QgsWkbTypes::GeometryCollection, QgsWkbTypes::Unknown, QgsWkbTypes::GeometryCollection, QgsWkbTypes::UnknownGeometry, false, false) }, { QgsWkbTypes::GeometryCollectionZ, WkbEntry(QLatin1String("GeometryCollectionZ"), true, QgsWkbTypes::GeometryCollectionZ, QgsWkbTypes::Unknown, QgsWkbTypes::GeometryCollection, QgsWkbTypes::UnknownGeometry, true, false) }, { QgsWkbTypes::GeometryCollectionM, WkbEntry(QLatin1String("GeometryCollectionM"), true, QgsWkbTypes::GeometryCollectionM, QgsWkbTypes::Unknown, QgsWkbTypes::GeometryCollection, QgsWkbTypes::UnknownGeometry, false, true) }, { QgsWkbTypes::GeometryCollectionZM, WkbEntry(QLatin1String("GeometryCollectionZM"), true, QgsWkbTypes::GeometryCollectionZM, QgsWkbTypes::Unknown, QgsWkbTypes::GeometryCollection, QgsWkbTypes::UnknownGeometry, true, true) }, })) QgsWkbTypes
Definition: qgswkbtypes.cpp:52
QString mName
Definition: qgswkbtypes.cpp:40
QgsWkbTypes::GeometryType mGeometryType
Definition: qgswkbtypes.cpp:45
QgsWkbTypes::Type mFlatType
Definition: qgswkbtypes.cpp:44
WkbEntry(const QString &name, bool isMultiType, QgsWkbTypes::Type multiType, QgsWkbTypes::Type singleType, QgsWkbTypes::Type flatType, QgsWkbTypes::GeometryType geometryType, bool hasZ, bool hasM)
Definition: qgswkbtypes.cpp:29
bool mIsMultiType
Definition: qgswkbtypes.cpp:41
QgsWkbTypes::Type mSingleType
Definition: qgswkbtypes.cpp:43
QgsWkbTypes::Type mMultiType
Definition: qgswkbtypes.cpp:42
bool mHasZ
Definition: qgswkbtypes.cpp:46
bool mHasM
Definition: qgswkbtypes.cpp:47