QGIS API Documentation 4.1.0-Master (60fea48833c)
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
59 sWkbEntries,
60 ( {
61 //register the known wkb types
64 //point
70 //linestring
77 //circularstring
86 //nurbscurve
91 //compoundcurve
99 //polygonQgis::WkbTypes
105 //triangle
110 //curvepolygon
118 //polyhedralsurface
127 //TIN
132 //multipoint
138 //multiline
149 //multicurve
154 //multipolygon
161 //multisurface
169 //geometrycollection
178 } )
179)
180
181Qgis::WkbType QgsWkbTypes::parseType( const QString &wktStr )
182{
183 const QString typestr = wktStr.left( wktStr.indexOf( '(' ) ).simplified().remove( ' ' );
184
185 QMap<Qgis::WkbType, WkbEntry>::const_iterator it = sWkbEntries()->constBegin();
186 for ( ; it != sWkbEntries()->constEnd(); ++it )
187 {
188 if ( it.value().mName.compare( typestr, Qt::CaseInsensitive ) == 0 )
189 {
190 return it.key();
191 }
192 }
194}
195
197{
198 const QMap< Qgis::WkbType, WkbEntry >::const_iterator it = sWkbEntries()->constFind( type );
199 if ( it == sWkbEntries()->constEnd() )
200 {
201 return QString();
202 }
203 return it->mName;
204}
205
207{
208 switch ( type )
209 {
211 return QObject::tr( "Unknown" );
213 return QObject::tr( "Point" );
215 return QObject::tr( "LineString" );
217 return QObject::tr( "Polygon" );
219 return QObject::tr( "Triangle" );
221 return QObject::tr( "PolyhedralSurface" );
223 return QObject::tr( "TIN" );
225 return QObject::tr( "MultiPoint" );
227 return QObject::tr( "MultiLine" );
229 return QObject::tr( "MultiPolygon" );
231 return QObject::tr( "GeometryCollection" );
233 return QObject::tr( "CircularString" );
235 return QObject::tr( "NurbsCurve" );
237 return QObject::tr( "CompoundCurve" );
239 return QObject::tr( "CurvePolygon" );
241 return QObject::tr( "MultiCurve" );
243 return QObject::tr( "MultiSurface" );
245 return QObject::tr( "No Geometry" );
247 return QObject::tr( "PointZ" );
249 return QObject::tr( "LineStringZ" );
251 return QObject::tr( "PolygonZ" );
253 return QObject::tr( "TriangleZ" );
255 return QObject::tr( "PolyhedralSurfaceZ" );
257 return QObject::tr( "TINZ" );
259 return QObject::tr( "MultiPointZ" );
261 return QObject::tr( "MultiLineZ" );
263 return QObject::tr( "MultiPolygonZ" );
265 return QObject::tr( "GeometryCollectionZ" );
267 return QObject::tr( "CircularStringZ" );
269 return QObject::tr( "NurbsCurveZ" );
271 return QObject::tr( "CompoundCurveZ" );
273 return QObject::tr( "CurvePolygonZ" );
275 return QObject::tr( "MultiCurveZ" );
277 return QObject::tr( "MultiSurfaceZ" );
279 return QObject::tr( "PointM" );
281 return QObject::tr( "LineStringM" );
283 return QObject::tr( "PolygonM" );
285 return QObject::tr( "TriangleM" );
287 return QObject::tr( "PolyhedralSurfaceM" );
289 return QObject::tr( "TINM" );
291 return QObject::tr( "MultiPointM" );
293 return QObject::tr( "MultiLineStringM" );
295 return QObject::tr( "MultiPolygonM" );
297 return QObject::tr( "GeometryCollectionM" );
299 return QObject::tr( "CircularStringM" );
301 return QObject::tr( "NurbsCurveM" );
303 return QObject::tr( "CompoundCurveM" );
305 return QObject::tr( "CurvePolygonM" );
307 return QObject::tr( "MultiCurveM" );
309 return QObject::tr( "MultiSurfaceM" );
311 return QObject::tr( "PointZM" );
313 return QObject::tr( "LineStringZM" );
315 return QObject::tr( "PolygonZM" );
317 return QObject::tr( "PolyhedralSurfaceZM" );
319 return QObject::tr( "TINZM" );
321 return QObject::tr( "MultiPointZM" );
323 return QObject::tr( "MultiLineZM" );
325 return QObject::tr( "MultiPolygonZM" );
327 return QObject::tr( "GeometryCollectionZM" );
329 return QObject::tr( "CircularStringZM" );
331 return QObject::tr( "NurbsCurveZM" );
333 return QObject::tr( "CompoundCurveZM" );
335 return QObject::tr( "CurvePolygonZM" );
337 return QObject::tr( "MultiCurveZM" );
339 return QObject::tr( "MultiSurfaceZM" );
341 return QObject::tr( "TriangleZM" );
343 return QObject::tr( "Point25D" );
345 return QObject::tr( "LineString25D" );
347 return QObject::tr( "Polygon25D" );
349 return QObject::tr( "MultiPoint25D" );
351 return QObject::tr( "MultiLineString25D" );
353 return QObject::tr( "MultiPolygon25D" );
354 }
355 return QString();
356}
357
359{
360 switch ( type )
361 {
363 return u"Point"_s;
365 return u"Line"_s;
367 return u"Polygon"_s;
369 return u"Unknown geometry"_s;
371 return u"No geometry"_s;
372 default:
373 return u"Invalid type"_s;
374 }
375}
376
377/***************************************************************************
378 * This class is considered CRITICAL and any change MUST be accompanied with
379 * full unit tests.
380 * See details in QEP #17
381 ****************************************************************************/
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Definition qgis.h:379
@ Point
Points.
Definition qgis.h:380
@ Line
Lines.
Definition qgis.h:381
@ Polygon
Polygons.
Definition qgis.h:382
@ Unknown
Unknown types.
Definition qgis.h:383
@ Null
No geometry.
Definition qgis.h:384
WkbType
The WKB type describes the number of dimensions a geometry has.
Definition qgis.h:294
@ LineString25D
LineString25D.
Definition qgis.h:362
@ MultiSurfaceM
MultiSurfaceM.
Definition qgis.h:341
@ PolyhedralSurfaceM
PolyhedralSurfaceM.
Definition qgis.h:342
@ MultiLineStringZM
MultiLineStringZM.
Definition qgis.h:349
@ MultiPointZM
MultiPointZM.
Definition qgis.h:348
@ MultiPointZ
MultiPointZ.
Definition qgis.h:317
@ CompoundCurve
CompoundCurve.
Definition qgis.h:305
@ MultiPolygonZM
MultiPolygonZM.
Definition qgis.h:350
@ LineStringM
LineStringM.
Definition qgis.h:330
@ Point
Point.
Definition qgis.h:296
@ LineString
LineString.
Definition qgis.h:297
@ MultiLineStringM
MultiLineStringM.
Definition qgis.h:334
@ NurbsCurveM
NurbsCurveM.
Definition qgis.h:344
@ TIN
TIN.
Definition qgis.h:310
@ MultiPolygon25D
MultiPolygon25D.
Definition qgis.h:366
@ MultiPointM
MultiPointM.
Definition qgis.h:333
@ MultiPoint
MultiPoint.
Definition qgis.h:300
@ LineStringZM
LineStringZM.
Definition qgis.h:346
@ GeometryCollectionZM
GeometryCollectionZM.
Definition qgis.h:351
@ TriangleZ
TriangleZ.
Definition qgis.h:316
@ Polygon
Polygon.
Definition qgis.h:298
@ CompoundCurveZM
CompoundCurveZM.
Definition qgis.h:353
@ CompoundCurveM
CompoundCurveM.
Definition qgis.h:338
@ MultiLineString25D
MultiLineString25D.
Definition qgis.h:365
@ MultiPolygon
MultiPolygon.
Definition qgis.h:302
@ GeometryCollectionZ
GeometryCollectionZ.
Definition qgis.h:320
@ GeometryCollectionM
GeometryCollectionM.
Definition qgis.h:336
@ CircularStringZM
CircularStringZM.
Definition qgis.h:352
@ Triangle
Triangle.
Definition qgis.h:299
@ NurbsCurve
NurbsCurve.
Definition qgis.h:311
@ PolygonM
PolygonM.
Definition qgis.h:331
@ NoGeometry
No geometry.
Definition qgis.h:312
@ MultiSurfaceZ
MultiSurfaceZ.
Definition qgis.h:325
@ CurvePolygonZM
CurvePolygonZM.
Definition qgis.h:354
@ TINZ
TINZ.
Definition qgis.h:327
@ MultiLineString
MultiLineString.
Definition qgis.h:301
@ MultiPolygonM
MultiPolygonM.
Definition qgis.h:335
@ MultiCurveZM
MultiCurveZM.
Definition qgis.h:355
@ MultiSurfaceZM
MultiSurfaceZM.
Definition qgis.h:356
@ PolygonZM
PolygonZM.
Definition qgis.h:347
@ MultiPoint25D
MultiPoint25D.
Definition qgis.h:364
@ Unknown
Unknown.
Definition qgis.h:295
@ NurbsCurveZ
NurbsCurveZ.
Definition qgis.h:328
@ PointM
PointM.
Definition qgis.h:329
@ CurvePolygonM
CurvePolygonM.
Definition qgis.h:339
@ NurbsCurveZM
NurbsCurveZM.
Definition qgis.h:360
@ CircularString
CircularString.
Definition qgis.h:304
@ TINZM
TINZM.
Definition qgis.h:358
@ PointZ
PointZ.
Definition qgis.h:313
@ TriangleZM
TriangleZM.
Definition qgis.h:359
@ MultiLineStringZ
MultiLineStringZ.
Definition qgis.h:318
@ GeometryCollection
GeometryCollection.
Definition qgis.h:303
@ PolyhedralSurfaceZM
PolyhedralSurfaceM.
Definition qgis.h:357
@ MultiPolygonZ
MultiPolygonZ.
Definition qgis.h:319
@ CurvePolygonZ
CurvePolygonZ.
Definition qgis.h:323
@ MultiCurve
MultiCurve.
Definition qgis.h:307
@ CompoundCurveZ
CompoundCurveZ.
Definition qgis.h:322
@ MultiCurveZ
MultiCurveZ.
Definition qgis.h:324
@ MultiCurveM
MultiCurveM.
Definition qgis.h:340
@ PolyhedralSurfaceZ
PolyhedralSurfaceZ.
Definition qgis.h:326
@ CircularStringM
CircularStringM.
Definition qgis.h:337
@ CurvePolygon
CurvePolygon.
Definition qgis.h:306
@ Point25D
Point25D.
Definition qgis.h:361
@ TINM
TINM.
Definition qgis.h:343
@ PointZM
PointZM.
Definition qgis.h:345
@ TriangleM
TriangleM.
Definition qgis.h:332
@ CircularStringZ
CircularStringZ.
Definition qgis.h:321
@ LineStringZ
LineStringZ.
Definition qgis.h:314
@ PolyhedralSurface
PolyhedralSurface.
Definition qgis.h:309
@ MultiSurface
MultiSurface.
Definition qgis.h:308
@ PolygonZ
PolygonZ.
Definition qgis.h:315
@ Polygon25D
Polygon25D.
Definition qgis.h:363
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