QGIS API Documentation 3.99.0-Master (a8882ad4560)
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 "moc_qgswkbtypes.cpp"
21
22/***************************************************************************
23 * This class is considered CRITICAL and any change MUST be accompanied with
24 * full unit tests.
25 * See details in QEP #17
26 ****************************************************************************/
27
28
30{
31 WkbEntry( const QString &name, bool isMultiType, Qgis::WkbType multiType, Qgis::WkbType singleType, Qgis::WkbType flatType, Qgis::GeometryType geometryType, bool hasZ, bool hasM )
32 : mName( name )
33 , mIsMultiType( isMultiType )
34 , mMultiType( multiType )
35 , mSingleType( singleType )
36 , mFlatType( flatType )
37 , mGeometryType( geometryType )
38 , mHasZ( hasZ )
39 , mHasM( hasM )
40 {}
41 QString mName;
47 bool mHasZ;
48 bool mHasM;
49};
50
51typedef QMap<Qgis::WkbType, WkbEntry> WkbEntries;
52
54{
55 //register the known wkb types
58 //point
64 //linestring
70 //circularstring
75 //nurbscurve
80 //compoundcurve
85 //polygonQgis::WkbTypes
91 //triangle
96 //curvepolygon
101 //polyhedralsurface
106 //TIN
111 //multipoint
117 //multiline
123 //multicurve
128 //multipolygon
134 //multisurface
139 //geometrycollection
144} ) )
145
146Qgis::WkbType QgsWkbTypes::parseType( const QString &wktStr )
147{
148 const QString typestr = wktStr.left( wktStr.indexOf( '(' ) ).simplified().remove( ' ' );
149
150 QMap<Qgis::WkbType, WkbEntry>::const_iterator it = sWkbEntries()->constBegin();
151 for ( ; it != sWkbEntries()->constEnd(); ++it )
152 {
153 if ( it.value().mName.compare( typestr, Qt::CaseInsensitive ) == 0 )
154 {
155 return it.key();
156 }
157 }
159}
160
162{
163 const QMap< Qgis::WkbType, WkbEntry >::const_iterator it = sWkbEntries()->constFind( type );
164 if ( it == sWkbEntries()->constEnd() )
165 {
166 return QString();
167 }
168 return it->mName;
169}
170
172{
173 switch ( type )
174 {
176 return QObject::tr( "Unknown" );
178 return QObject::tr( "Point" );
180 return QObject::tr( "LineString" );
182 return QObject::tr( "Polygon" );
184 return QObject::tr( "Triangle" );
186 return QObject::tr( "PolyhedralSurface" );
188 return QObject::tr( "TIN" );
190 return QObject::tr( "MultiPoint" );
192 return QObject::tr( "MultiLine" );
194 return QObject::tr( "MultiPolygon" );
196 return QObject::tr( "GeometryCollection" );
198 return QObject::tr( "CircularString" );
200 return QObject::tr( "NurbsCurve" );
202 return QObject::tr( "CompoundCurve" );
204 return QObject::tr( "CurvePolygon" );
206 return QObject::tr( "MultiCurve" );
208 return QObject::tr( "MultiSurface" );
210 return QObject::tr( "No Geometry" );
212 return QObject::tr( "PointZ" );
214 return QObject::tr( "LineStringZ" );
216 return QObject::tr( "PolygonZ" );
218 return QObject::tr( "TriangleZ" );
220 return QObject::tr( "PolyhedralSurfaceZ" );
222 return QObject::tr( "TINZ" );
224 return QObject::tr( "MultiPointZ" );
226 return QObject::tr( "MultiLineZ" );
228 return QObject::tr( "MultiPolygonZ" );
230 return QObject::tr( "GeometryCollectionZ" );
232 return QObject::tr( "CircularStringZ" );
234 return QObject::tr( "NurbsCurveZ" );
236 return QObject::tr( "CompoundCurveZ" );
238 return QObject::tr( "CurvePolygonZ" );
240 return QObject::tr( "MultiCurveZ" );
242 return QObject::tr( "MultiSurfaceZ" );
244 return QObject::tr( "PointM" );
246 return QObject::tr( "LineStringM" );
248 return QObject::tr( "PolygonM" );
250 return QObject::tr( "TriangleM" );
252 return QObject::tr( "PolyhedralSurfaceM" );
254 return QObject::tr( "TINM" );
256 return QObject::tr( "MultiPointM" );
258 return QObject::tr( "MultiLineStringM" );
260 return QObject::tr( "MultiPolygonM" );
262 return QObject::tr( "GeometryCollectionM" );
264 return QObject::tr( "CircularStringM" );
266 return QObject::tr( "NurbsCurveM" );
268 return QObject::tr( "CompoundCurveM" );
270 return QObject::tr( "CurvePolygonM" );
272 return QObject::tr( "MultiCurveM" );
274 return QObject::tr( "MultiSurfaceM" );
276 return QObject::tr( "PointZM" );
278 return QObject::tr( "LineStringZM" );
280 return QObject::tr( "PolygonZM" );
282 return QObject::tr( "PolyhedralSurfaceZM" );
284 return QObject::tr( "TINZM" );
286 return QObject::tr( "MultiPointZM" );
288 return QObject::tr( "MultiLineZM" );
290 return QObject::tr( "MultiPolygonZM" );
292 return QObject::tr( "GeometryCollectionZM" );
294 return QObject::tr( "CircularStringZM" );
296 return QObject::tr( "NurbsCurveZM" );
298 return QObject::tr( "CompoundCurveZM" );
300 return QObject::tr( "CurvePolygonZM" );
302 return QObject::tr( "MultiCurveZM" );
304 return QObject::tr( "MultiSurfaceZM" );
306 return QObject::tr( "TriangleZM" );
308 return QObject::tr( "Point25D" );
310 return QObject::tr( "LineString25D" );
312 return QObject::tr( "Polygon25D" );
314 return QObject::tr( "MultiPoint25D" );
316 return QObject::tr( "MultiLineString25D" );
318 return QObject::tr( "MultiPolygon25D" );
319 }
320 return QString();
321}
322
324{
325 switch ( type )
326 {
328 return u"Point"_s;
330 return u"Line"_s;
332 return u"Polygon"_s;
334 return u"Unknown geometry"_s;
336 return u"No geometry"_s;
337 default:
338 return u"Invalid type"_s;
339 }
340}
341
342/***************************************************************************
343 * This class is considered CRITICAL and any change MUST be accompanied with
344 * full unit tests.
345 * See details in QEP #17
346 ****************************************************************************/
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