QGIS API Documentation 3.99.0-Master (d270888f95f)
Loading...
Searching...
No Matches
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#include <QString>
21
22#include "moc_qgswkbtypes.cpp"
23
24using namespace Qt::StringLiterals;
25
26/***************************************************************************
27 * This class is considered CRITICAL and any change MUST be accompanied with
28 * full unit tests.
29 * See details in QEP #17
30 ****************************************************************************/
31
32
34{
35 WkbEntry( const QString &name, bool isMultiType, Qgis::WkbType multiType, Qgis::WkbType singleType, Qgis::WkbType flatType, Qgis::GeometryType geometryType, bool hasZ, bool hasM )
36 : mName( name )
37 , mIsMultiType( isMultiType )
38 , mMultiType( multiType )
39 , mSingleType( singleType )
40 , mFlatType( flatType )
41 , mGeometryType( geometryType )
42 , mHasZ( hasZ )
43 , mHasM( hasM )
44 {}
45 QString mName;
51 bool mHasZ;
52 bool mHasM;
53};
54
55typedef QMap<Qgis::WkbType, WkbEntry> WkbEntries;
56
58{
59 //register the known wkb types
62 //point
68 //linestring
74 //circularstring
79 //nurbscurve
84 //compoundcurve
89 //polygonQgis::WkbTypes
95 //triangle
100 //curvepolygon
105 //polyhedralsurface
110 //TIN
115 //multipoint
121 //multiline
127 //multicurve
132 //multipolygon
138 //multisurface
143 //geometrycollection
148} ) )
149
150Qgis::WkbType QgsWkbTypes::parseType( const QString &wktStr )
151{
152 const QString typestr = wktStr.left( wktStr.indexOf( '(' ) ).simplified().remove( ' ' );
153
154 QMap<Qgis::WkbType, WkbEntry>::const_iterator it = sWkbEntries()->constBegin();
155 for ( ; it != sWkbEntries()->constEnd(); ++it )
156 {
157 if ( it.value().mName.compare( typestr, Qt::CaseInsensitive ) == 0 )
158 {
159 return it.key();
160 }
161 }
163}
164
166{
167 const QMap< Qgis::WkbType, WkbEntry >::const_iterator it = sWkbEntries()->constFind( type );
168 if ( it == sWkbEntries()->constEnd() )
169 {
170 return QString();
171 }
172 return it->mName;
173}
174
176{
177 switch ( type )
178 {
180 return QObject::tr( "Unknown" );
182 return QObject::tr( "Point" );
184 return QObject::tr( "LineString" );
186 return QObject::tr( "Polygon" );
188 return QObject::tr( "Triangle" );
190 return QObject::tr( "PolyhedralSurface" );
192 return QObject::tr( "TIN" );
194 return QObject::tr( "MultiPoint" );
196 return QObject::tr( "MultiLine" );
198 return QObject::tr( "MultiPolygon" );
200 return QObject::tr( "GeometryCollection" );
202 return QObject::tr( "CircularString" );
204 return QObject::tr( "NurbsCurve" );
206 return QObject::tr( "CompoundCurve" );
208 return QObject::tr( "CurvePolygon" );
210 return QObject::tr( "MultiCurve" );
212 return QObject::tr( "MultiSurface" );
214 return QObject::tr( "No Geometry" );
216 return QObject::tr( "PointZ" );
218 return QObject::tr( "LineStringZ" );
220 return QObject::tr( "PolygonZ" );
222 return QObject::tr( "TriangleZ" );
224 return QObject::tr( "PolyhedralSurfaceZ" );
226 return QObject::tr( "TINZ" );
228 return QObject::tr( "MultiPointZ" );
230 return QObject::tr( "MultiLineZ" );
232 return QObject::tr( "MultiPolygonZ" );
234 return QObject::tr( "GeometryCollectionZ" );
236 return QObject::tr( "CircularStringZ" );
238 return QObject::tr( "NurbsCurveZ" );
240 return QObject::tr( "CompoundCurveZ" );
242 return QObject::tr( "CurvePolygonZ" );
244 return QObject::tr( "MultiCurveZ" );
246 return QObject::tr( "MultiSurfaceZ" );
248 return QObject::tr( "PointM" );
250 return QObject::tr( "LineStringM" );
252 return QObject::tr( "PolygonM" );
254 return QObject::tr( "TriangleM" );
256 return QObject::tr( "PolyhedralSurfaceM" );
258 return QObject::tr( "TINM" );
260 return QObject::tr( "MultiPointM" );
262 return QObject::tr( "MultiLineStringM" );
264 return QObject::tr( "MultiPolygonM" );
266 return QObject::tr( "GeometryCollectionM" );
268 return QObject::tr( "CircularStringM" );
270 return QObject::tr( "NurbsCurveM" );
272 return QObject::tr( "CompoundCurveM" );
274 return QObject::tr( "CurvePolygonM" );
276 return QObject::tr( "MultiCurveM" );
278 return QObject::tr( "MultiSurfaceM" );
280 return QObject::tr( "PointZM" );
282 return QObject::tr( "LineStringZM" );
284 return QObject::tr( "PolygonZM" );
286 return QObject::tr( "PolyhedralSurfaceZM" );
288 return QObject::tr( "TINZM" );
290 return QObject::tr( "MultiPointZM" );
292 return QObject::tr( "MultiLineZM" );
294 return QObject::tr( "MultiPolygonZM" );
296 return QObject::tr( "GeometryCollectionZM" );
298 return QObject::tr( "CircularStringZM" );
300 return QObject::tr( "NurbsCurveZM" );
302 return QObject::tr( "CompoundCurveZM" );
304 return QObject::tr( "CurvePolygonZM" );
306 return QObject::tr( "MultiCurveZM" );
308 return QObject::tr( "MultiSurfaceZM" );
310 return QObject::tr( "TriangleZM" );
312 return QObject::tr( "Point25D" );
314 return QObject::tr( "LineString25D" );
316 return QObject::tr( "Polygon25D" );
318 return QObject::tr( "MultiPoint25D" );
320 return QObject::tr( "MultiLineString25D" );
322 return QObject::tr( "MultiPolygon25D" );
323 }
324 return QString();
325}
326
328{
329 switch ( type )
330 {
332 return u"Point"_s;
334 return u"Line"_s;
336 return u"Polygon"_s;
338 return u"Unknown geometry"_s;
340 return u"No geometry"_s;
341 default:
342 return u"Invalid type"_s;
343 }
344}
345
346/***************************************************************************
347 * This class is considered CRITICAL and any change MUST be accompanied with
348 * full unit tests.
349 * See details in QEP #17
350 ****************************************************************************/
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Definition qgis.h:365
@ Point
Points.
Definition qgis.h:366
@ Line
Lines.
Definition qgis.h:367
@ Polygon
Polygons.
Definition qgis.h:368
@ Unknown
Unknown types.
Definition qgis.h:369
@ Null
No geometry.
Definition qgis.h:370
WkbType
The WKB type describes the number of dimensions a geometry has.
Definition qgis.h:280
@ LineString25D
LineString25D.
Definition qgis.h:348
@ MultiSurfaceM
MultiSurfaceM.
Definition qgis.h:327
@ PolyhedralSurfaceM
PolyhedralSurfaceM.
Definition qgis.h:328
@ MultiLineStringZM
MultiLineStringZM.
Definition qgis.h:335
@ MultiPointZM
MultiPointZM.
Definition qgis.h:334
@ MultiPointZ
MultiPointZ.
Definition qgis.h:303
@ CompoundCurve
CompoundCurve.
Definition qgis.h:291
@ MultiPolygonZM
MultiPolygonZM.
Definition qgis.h:336
@ LineStringM
LineStringM.
Definition qgis.h:316
@ Point
Point.
Definition qgis.h:282
@ LineString
LineString.
Definition qgis.h:283
@ MultiLineStringM
MultiLineStringM.
Definition qgis.h:320
@ NurbsCurveM
NurbsCurveM.
Definition qgis.h:330
@ TIN
TIN.
Definition qgis.h:296
@ MultiPolygon25D
MultiPolygon25D.
Definition qgis.h:352
@ MultiPointM
MultiPointM.
Definition qgis.h:319
@ MultiPoint
MultiPoint.
Definition qgis.h:286
@ LineStringZM
LineStringZM.
Definition qgis.h:332
@ GeometryCollectionZM
GeometryCollectionZM.
Definition qgis.h:337
@ TriangleZ
TriangleZ.
Definition qgis.h:302
@ Polygon
Polygon.
Definition qgis.h:284
@ CompoundCurveZM
CompoundCurveZM.
Definition qgis.h:339
@ CompoundCurveM
CompoundCurveM.
Definition qgis.h:324
@ MultiLineString25D
MultiLineString25D.
Definition qgis.h:351
@ MultiPolygon
MultiPolygon.
Definition qgis.h:288
@ GeometryCollectionZ
GeometryCollectionZ.
Definition qgis.h:306
@ GeometryCollectionM
GeometryCollectionM.
Definition qgis.h:322
@ CircularStringZM
CircularStringZM.
Definition qgis.h:338
@ Triangle
Triangle.
Definition qgis.h:285
@ NurbsCurve
NurbsCurve.
Definition qgis.h:297
@ PolygonM
PolygonM.
Definition qgis.h:317
@ NoGeometry
No geometry.
Definition qgis.h:298
@ MultiSurfaceZ
MultiSurfaceZ.
Definition qgis.h:311
@ CurvePolygonZM
CurvePolygonZM.
Definition qgis.h:340
@ TINZ
TINZ.
Definition qgis.h:313
@ MultiLineString
MultiLineString.
Definition qgis.h:287
@ MultiPolygonM
MultiPolygonM.
Definition qgis.h:321
@ MultiCurveZM
MultiCurveZM.
Definition qgis.h:341
@ MultiSurfaceZM
MultiSurfaceZM.
Definition qgis.h:342
@ PolygonZM
PolygonZM.
Definition qgis.h:333
@ MultiPoint25D
MultiPoint25D.
Definition qgis.h:350
@ Unknown
Unknown.
Definition qgis.h:281
@ NurbsCurveZ
NurbsCurveZ.
Definition qgis.h:314
@ PointM
PointM.
Definition qgis.h:315
@ CurvePolygonM
CurvePolygonM.
Definition qgis.h:325
@ NurbsCurveZM
NurbsCurveZM.
Definition qgis.h:346
@ CircularString
CircularString.
Definition qgis.h:290
@ TINZM
TINZM.
Definition qgis.h:344
@ PointZ
PointZ.
Definition qgis.h:299
@ TriangleZM
TriangleZM.
Definition qgis.h:345
@ MultiLineStringZ
MultiLineStringZ.
Definition qgis.h:304
@ GeometryCollection
GeometryCollection.
Definition qgis.h:289
@ PolyhedralSurfaceZM
PolyhedralSurfaceM.
Definition qgis.h:343
@ MultiPolygonZ
MultiPolygonZ.
Definition qgis.h:305
@ CurvePolygonZ
CurvePolygonZ.
Definition qgis.h:309
@ MultiCurve
MultiCurve.
Definition qgis.h:293
@ CompoundCurveZ
CompoundCurveZ.
Definition qgis.h:308
@ MultiCurveZ
MultiCurveZ.
Definition qgis.h:310
@ MultiCurveM
MultiCurveM.
Definition qgis.h:326
@ PolyhedralSurfaceZ
PolyhedralSurfaceZ.
Definition qgis.h:312
@ CircularStringM
CircularStringM.
Definition qgis.h:323
@ CurvePolygon
CurvePolygon.
Definition qgis.h:292
@ Point25D
Point25D.
Definition qgis.h:347
@ TINM
TINM.
Definition qgis.h:329
@ PointZM
PointZM.
Definition qgis.h:331
@ TriangleM
TriangleM.
Definition qgis.h:318
@ CircularStringZ
CircularStringZ.
Definition qgis.h:307
@ LineStringZ
LineStringZ.
Definition qgis.h:300
@ PolyhedralSurface
PolyhedralSurface.
Definition qgis.h:295
@ MultiSurface
MultiSurface.
Definition qgis.h:294
@ PolygonZ
PolygonZ.
Definition qgis.h:301
@ Polygon25D
Polygon25D.
Definition qgis.h:349
static Q_INVOKABLE QString translatedDisplayString(Qgis::WkbType type)
Returns a translated display string type for a WKB type, e.g., the geometry name used in WKT geometry...
static Qgis::WkbType parseType(const QString &wktStr)
Attempts to extract the WKB type from a WKT string.
static Q_INVOKABLE QString displayString(Qgis::WkbType type)
Returns a non-translated display string type for a WKB type, e.g., the geometry name used in WKT geom...
static Q_INVOKABLE QString geometryDisplayString(Qgis::GeometryType type)
Returns a display string for a geometry type.
Q_GLOBAL_STATIC_WITH_ARGS(WkbEntries, sWkbEntries,({ { Qgis::WkbType::Unknown, WkbEntry("Unknown"_L1, false, Qgis::WkbType::Unknown, Qgis::WkbType::Unknown, Qgis::WkbType::Unknown, Qgis::GeometryType::Unknown, false, false) }, { Qgis::WkbType::NoGeometry, WkbEntry("NoGeometry"_L1, false, Qgis::WkbType::NoGeometry, Qgis::WkbType::NoGeometry, Qgis::WkbType::NoGeometry, Qgis::GeometryType::Null, false, false) }, { Qgis::WkbType::Point, WkbEntry("Point"_L1, false, Qgis::WkbType::MultiPoint, Qgis::WkbType::Point, Qgis::WkbType::Point, Qgis::GeometryType::Point, false, false) }, { Qgis::WkbType::PointZ, WkbEntry("PointZ"_L1, false, Qgis::WkbType::MultiPointZ, Qgis::WkbType::PointZ, Qgis::WkbType::Point, Qgis::GeometryType::Point, true, false) }, { Qgis::WkbType::PointM, WkbEntry("PointM"_L1, false, Qgis::WkbType::MultiPointM, Qgis::WkbType::PointM, Qgis::WkbType::Point, Qgis::GeometryType::Point, false, true) }, { Qgis::WkbType::PointZM, WkbEntry("PointZM"_L1, false, Qgis::WkbType::MultiPointZM, Qgis::WkbType::PointZM, Qgis::WkbType::Point, Qgis::GeometryType::Point, true, true) }, { Qgis::WkbType::Point25D, WkbEntry("Point25D"_L1, false, Qgis::WkbType::MultiPoint25D, Qgis::WkbType::Point25D, Qgis::WkbType::Point, Qgis::GeometryType::Point, true, false) }, { Qgis::WkbType::LineString, WkbEntry("LineString"_L1, false, Qgis::WkbType::MultiLineString, Qgis::WkbType::LineString, Qgis::WkbType::LineString, Qgis::GeometryType::Line, false, false) }, { Qgis::WkbType::LineStringZ, WkbEntry("LineStringZ"_L1, false, Qgis::WkbType::MultiLineStringZ, Qgis::WkbType::LineStringZ, Qgis::WkbType::LineString, Qgis::GeometryType::Line, true, false) }, { Qgis::WkbType::LineStringM, WkbEntry("LineStringM"_L1, false, Qgis::WkbType::MultiLineStringM, Qgis::WkbType::LineStringM, Qgis::WkbType::LineString, Qgis::GeometryType::Line, false, true) }, { Qgis::WkbType::LineStringZM, WkbEntry("LineStringZM"_L1, false, Qgis::WkbType::MultiLineStringZM, Qgis::WkbType::LineStringZM, Qgis::WkbType::LineString, Qgis::GeometryType::Line, true, true) }, { Qgis::WkbType::LineString25D, WkbEntry("LineString25D"_L1, false, Qgis::WkbType::MultiLineString25D, Qgis::WkbType::LineString25D, Qgis::WkbType::LineString, Qgis::GeometryType::Line, true, false) }, { Qgis::WkbType::CircularString, WkbEntry("CircularString"_L1, false, Qgis::WkbType::MultiCurve, Qgis::WkbType::CircularString, Qgis::WkbType::CircularString, Qgis::GeometryType::Line, false, false) }, { Qgis::WkbType::CircularStringZ, WkbEntry("CircularStringZ"_L1, false, Qgis::WkbType::MultiCurveZ, Qgis::WkbType::CircularStringZ, Qgis::WkbType::CircularString, Qgis::GeometryType::Line, true, false) }, { Qgis::WkbType::CircularStringM, WkbEntry("CircularStringM"_L1, false, Qgis::WkbType::MultiCurveM, Qgis::WkbType::CircularStringM, Qgis::WkbType::CircularString, Qgis::GeometryType::Line, false, true) }, { Qgis::WkbType::CircularStringZM, WkbEntry("CircularStringZM"_L1, false, Qgis::WkbType::MultiCurveZM, Qgis::WkbType::CircularStringZM, Qgis::WkbType::CircularString, Qgis::GeometryType::Line, true, true) }, { Qgis::WkbType::NurbsCurve, WkbEntry("NurbsCurve"_L1, false, Qgis::WkbType::MultiCurve, Qgis::WkbType::NurbsCurve, Qgis::WkbType::NurbsCurve, Qgis::GeometryType::Line, false, false) }, { Qgis::WkbType::NurbsCurveZ, WkbEntry("NurbsCurveZ"_L1, false, Qgis::WkbType::MultiCurveZ, Qgis::WkbType::NurbsCurveZ, Qgis::WkbType::NurbsCurve, Qgis::GeometryType::Line, true, false) }, { Qgis::WkbType::NurbsCurveM, WkbEntry("NurbsCurveM"_L1, false, Qgis::WkbType::MultiCurveM, Qgis::WkbType::NurbsCurveM, Qgis::WkbType::NurbsCurve, Qgis::GeometryType::Line, false, true) }, { Qgis::WkbType::NurbsCurveZM, WkbEntry("NurbsCurveZM"_L1, false, Qgis::WkbType::MultiCurveZM, Qgis::WkbType::NurbsCurveZM, Qgis::WkbType::NurbsCurve, Qgis::GeometryType::Line, true, true) }, { Qgis::WkbType::CompoundCurve, WkbEntry("CompoundCurve"_L1, false, Qgis::WkbType::MultiCurve, Qgis::WkbType::CompoundCurve, Qgis::WkbType::CompoundCurve, Qgis::GeometryType::Line, false, false) }, { Qgis::WkbType::CompoundCurveZ, WkbEntry("CompoundCurveZ"_L1, false, Qgis::WkbType::MultiCurveZ, Qgis::WkbType::CompoundCurveZ, Qgis::WkbType::CompoundCurve, Qgis::GeometryType::Line, true, false) }, { Qgis::WkbType::CompoundCurveM, WkbEntry("CompoundCurveM"_L1, false, Qgis::WkbType::MultiCurveM, Qgis::WkbType::CompoundCurveM, Qgis::WkbType::CompoundCurve, Qgis::GeometryType::Line, false, true) }, { Qgis::WkbType::CompoundCurveZM, WkbEntry("CompoundCurveZM"_L1, false, Qgis::WkbType::MultiCurveZM, Qgis::WkbType::CompoundCurveZM, Qgis::WkbType::CompoundCurve, Qgis::GeometryType::Line, true, true) }, { Qgis::WkbType::Polygon, WkbEntry("Polygon"_L1, false, Qgis::WkbType::MultiPolygon, Qgis::WkbType::Polygon, Qgis::WkbType::Polygon, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::PolygonZ, WkbEntry("PolygonZ"_L1, false, Qgis::WkbType::MultiPolygonZ, Qgis::WkbType::PolygonZ, Qgis::WkbType::Polygon, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::PolygonM, WkbEntry("PolygonM"_L1, false, Qgis::WkbType::MultiPolygonM, Qgis::WkbType::PolygonM, Qgis::WkbType::Polygon, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::PolygonZM, WkbEntry("PolygonZM"_L1, false, Qgis::WkbType::MultiPolygonZM, Qgis::WkbType::PolygonZM, Qgis::WkbType::Polygon, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::Polygon25D, WkbEntry("Polygon25D"_L1, false, Qgis::WkbType::MultiPolygon25D, Qgis::WkbType::Polygon25D, Qgis::WkbType::Polygon, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::Triangle, WkbEntry("Triangle"_L1, false, Qgis::WkbType::Unknown, Qgis::WkbType::Triangle, Qgis::WkbType::Triangle, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::TriangleZ, WkbEntry("TriangleZ"_L1, false, Qgis::WkbType::Unknown, Qgis::WkbType::TriangleZ, Qgis::WkbType::Triangle, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::TriangleM, WkbEntry("TriangleM"_L1, false, Qgis::WkbType::Unknown, Qgis::WkbType::TriangleM, Qgis::WkbType::Triangle, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::TriangleZM, WkbEntry("TriangleZM"_L1, false, Qgis::WkbType::Unknown, Qgis::WkbType::TriangleZM, Qgis::WkbType::Triangle, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::CurvePolygon, WkbEntry("CurvePolygon"_L1, false, Qgis::WkbType::MultiSurface, Qgis::WkbType::CurvePolygon, Qgis::WkbType::CurvePolygon, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::CurvePolygonZ, WkbEntry("CurvePolygonZ"_L1, false, Qgis::WkbType::MultiSurfaceZ, Qgis::WkbType::CurvePolygonZ, Qgis::WkbType::CurvePolygon, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::CurvePolygonM, WkbEntry("CurvePolygonM"_L1, false, Qgis::WkbType::MultiSurfaceM, Qgis::WkbType::CurvePolygonM, Qgis::WkbType::CurvePolygon, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::CurvePolygonZM, WkbEntry("CurvePolygonZM"_L1, false, Qgis::WkbType::MultiSurfaceZM, Qgis::WkbType::CurvePolygonZM, Qgis::WkbType::CurvePolygon, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::PolyhedralSurface, WkbEntry("PolyhedralSurface"_L1, false, Qgis::WkbType::MultiPolygon, Qgis::WkbType::PolyhedralSurface, Qgis::WkbType::PolyhedralSurface, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::PolyhedralSurfaceZ, WkbEntry("PolyhedralSurfaceZ"_L1, false, Qgis::WkbType::MultiPolygonZ, Qgis::WkbType::PolyhedralSurfaceZ, Qgis::WkbType::PolyhedralSurface, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::PolyhedralSurfaceM, WkbEntry("PolyhedralSurfaceM"_L1, false, Qgis::WkbType::MultiPolygonM, Qgis::WkbType::PolyhedralSurfaceM, Qgis::WkbType::PolyhedralSurface, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::PolyhedralSurfaceZM, WkbEntry("PolyhedralSurfaceZM"_L1, false, Qgis::WkbType::MultiPolygonZM, Qgis::WkbType::PolyhedralSurfaceZM, Qgis::WkbType::PolyhedralSurface, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::TIN, WkbEntry("TIN"_L1, false, Qgis::WkbType::MultiPolygon, Qgis::WkbType::TIN, Qgis::WkbType::TIN, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::TINZ, WkbEntry("TINZ"_L1, false, Qgis::WkbType::MultiPolygonZ, Qgis::WkbType::TIN, Qgis::WkbType::TINZ, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::TINM, WkbEntry("TINM"_L1, false, Qgis::WkbType::MultiPolygonM, Qgis::WkbType::TIN, Qgis::WkbType::TINM, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::TINZM, WkbEntry("TINZM"_L1, false, Qgis::WkbType::MultiPolygonZM, Qgis::WkbType::TIN, Qgis::WkbType::TINZM, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::MultiPoint, WkbEntry("MultiPoint"_L1, true, Qgis::WkbType::MultiPoint, Qgis::WkbType::Point, Qgis::WkbType::MultiPoint, Qgis::GeometryType::Point, false, false) }, { Qgis::WkbType::MultiPointZ, WkbEntry("MultiPointZ"_L1, true, Qgis::WkbType::MultiPointZ, Qgis::WkbType::PointZ, Qgis::WkbType::MultiPoint, Qgis::GeometryType::Point, true, false) }, { Qgis::WkbType::MultiPointM, WkbEntry("MultiPointM"_L1, true, Qgis::WkbType::MultiPointM, Qgis::WkbType::PointM, Qgis::WkbType::MultiPoint, Qgis::GeometryType::Point, false, true) }, { Qgis::WkbType::MultiPointZM, WkbEntry("MultiPointZM"_L1, true, Qgis::WkbType::MultiPointZM, Qgis::WkbType::PointZM, Qgis::WkbType::MultiPoint, Qgis::GeometryType::Point, true, true) }, { Qgis::WkbType::MultiPoint25D, WkbEntry("MultiPoint25D"_L1, true, Qgis::WkbType::MultiPoint25D, Qgis::WkbType::Point25D, Qgis::WkbType::MultiPoint, Qgis::GeometryType::Point, true, false) }, { Qgis::WkbType::MultiLineString, WkbEntry("MultiLineString"_L1, true, Qgis::WkbType::MultiLineString, Qgis::WkbType::LineString, Qgis::WkbType::MultiLineString, Qgis::GeometryType::Line, false, false) }, { Qgis::WkbType::MultiLineStringZ, WkbEntry("MultiLineStringZ"_L1, true, Qgis::WkbType::MultiLineStringZ, Qgis::WkbType::LineStringZ, Qgis::WkbType::MultiLineString, Qgis::GeometryType::Line, true, false) }, { Qgis::WkbType::MultiLineStringM, WkbEntry("MultiLineStringM"_L1, true, Qgis::WkbType::MultiLineStringM, Qgis::WkbType::LineStringM, Qgis::WkbType::MultiLineString, Qgis::GeometryType::Line, false, true) }, { Qgis::WkbType::MultiLineStringZM, WkbEntry("MultiLineStringZM"_L1, true, Qgis::WkbType::MultiLineStringZM, Qgis::WkbType::LineStringZM, Qgis::WkbType::MultiLineString, Qgis::GeometryType::Line, true, true) }, { Qgis::WkbType::MultiLineString25D, WkbEntry("MultiLineString25D"_L1, true, Qgis::WkbType::MultiLineString25D, Qgis::WkbType::LineString25D, Qgis::WkbType::MultiLineString, Qgis::GeometryType::Line, true, false) }, { Qgis::WkbType::MultiCurve, WkbEntry("MultiCurve"_L1, true, Qgis::WkbType::MultiCurve, Qgis::WkbType::CompoundCurve, Qgis::WkbType::MultiCurve, Qgis::GeometryType::Line, false, false) }, { Qgis::WkbType::MultiCurveZ, WkbEntry("MultiCurveZ"_L1, true, Qgis::WkbType::MultiCurveZ, Qgis::WkbType::CompoundCurveZ, Qgis::WkbType::MultiCurve, Qgis::GeometryType::Line, true, false) }, { Qgis::WkbType::MultiCurveM, WkbEntry("MultiCurveM"_L1, true, Qgis::WkbType::MultiCurveM, Qgis::WkbType::CompoundCurveM, Qgis::WkbType::MultiCurve, Qgis::GeometryType::Line, false, true) }, { Qgis::WkbType::MultiCurveZM, WkbEntry("MultiCurveZM"_L1, true, Qgis::WkbType::MultiCurveZM, Qgis::WkbType::CompoundCurveZM, Qgis::WkbType::MultiCurve, Qgis::GeometryType::Line, true, true) }, { Qgis::WkbType::MultiPolygon, WkbEntry("MultiPolygon"_L1, true, Qgis::WkbType::MultiPolygon, Qgis::WkbType::Polygon, Qgis::WkbType::MultiPolygon, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::MultiPolygonZ, WkbEntry("MultiPolygonZ"_L1, true, Qgis::WkbType::MultiPolygonZ, Qgis::WkbType::PolygonZ, Qgis::WkbType::MultiPolygon, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::MultiPolygonM, WkbEntry("MultiPolygonM"_L1, true, Qgis::WkbType::MultiPolygonM, Qgis::WkbType::PolygonM, Qgis::WkbType::MultiPolygon, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::MultiPolygonZM, WkbEntry("MultiPolygonZM"_L1, true, Qgis::WkbType::MultiPolygonZM, Qgis::WkbType::PolygonZM, Qgis::WkbType::MultiPolygon, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::MultiPolygon25D, WkbEntry("MultiPolygon25D"_L1, true, Qgis::WkbType::MultiPolygon25D, Qgis::WkbType::Polygon25D, Qgis::WkbType::MultiPolygon, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::MultiSurface, WkbEntry("MultiSurface"_L1, true, Qgis::WkbType::MultiSurface, Qgis::WkbType::CurvePolygon, Qgis::WkbType::MultiSurface, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::MultiSurfaceZ, WkbEntry("MultiSurfaceZ"_L1, true, Qgis::WkbType::MultiSurfaceZ, Qgis::WkbType::CurvePolygonZ, Qgis::WkbType::MultiSurface, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::MultiSurfaceM, WkbEntry("MultiSurfaceM"_L1, true, Qgis::WkbType::MultiSurfaceM, Qgis::WkbType::CurvePolygonM, Qgis::WkbType::MultiSurface, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::MultiSurfaceZM, WkbEntry("MultiSurfaceZM"_L1, true, Qgis::WkbType::MultiSurfaceZM, Qgis::WkbType::CurvePolygonZM, Qgis::WkbType::MultiSurface, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::GeometryCollection, WkbEntry("GeometryCollection"_L1, true, Qgis::WkbType::GeometryCollection, Qgis::WkbType::Unknown, Qgis::WkbType::GeometryCollection, Qgis::GeometryType::Unknown, false, false) }, { Qgis::WkbType::GeometryCollectionZ, WkbEntry("GeometryCollectionZ"_L1, true, Qgis::WkbType::GeometryCollectionZ, Qgis::WkbType::Unknown, Qgis::WkbType::GeometryCollection, Qgis::GeometryType::Unknown, true, false) }, { Qgis::WkbType::GeometryCollectionM, WkbEntry("GeometryCollectionM"_L1, true, Qgis::WkbType::GeometryCollectionM, Qgis::WkbType::Unknown, Qgis::WkbType::GeometryCollection, Qgis::GeometryType::Unknown, false, true) }, { Qgis::WkbType::GeometryCollectionZM, WkbEntry("GeometryCollectionZM"_L1, true, Qgis::WkbType::GeometryCollectionZM, Qgis::WkbType::Unknown, Qgis::WkbType::GeometryCollection, Qgis::GeometryType::Unknown, true, true) }, })) Qgis
QMap< Qgis::WkbType, WkbEntry > WkbEntries
Qgis::WkbType mMultiType
QString mName
Qgis::GeometryType mGeometryType
bool mIsMultiType
Qgis::WkbType mFlatType
WkbEntry(const QString &name, bool isMultiType, Qgis::WkbType multiType, Qgis::WkbType singleType, Qgis::WkbType flatType, Qgis::GeometryType geometryType, bool hasZ, bool hasM)
Qgis::WkbType mSingleType