QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
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 
27 struct WkbEntry
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 
50 typedef 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 
130 QgsWkbTypes::Type QgsWkbTypes::parseType( const QString &wktStr )
131 {
132  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  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 
158  switch ( type )
159  {
160  case PointGeometry:
161  return QStringLiteral( "Point" );
162  case LineGeometry:
163  return QStringLiteral( "Line" );
164  case PolygonGeometry:
165  return QStringLiteral( "Polygon" );
166  case UnknownGeometry:
167  return QStringLiteral( "Unknown geometry" );
168  case NullGeometry:
169  return QStringLiteral( "No geometry" );
170  default:
171  return QStringLiteral( "Invalid type" );
172  }
173 
174 
175 }
176 
177 /***************************************************************************
178  * This class is considered CRITICAL and any change MUST be accompanied with
179  * full unit tests.
180  * See details in QEP #17
181  ****************************************************************************/
QgsWkbTypes::MultiPolygonZM
@ MultiPolygonZM
Definition: qgswkbtypes.h:117
WkbEntry::mName
QString mName
Definition: qgswkbtypes.cpp:40
QgsWkbTypes::Triangle
@ Triangle
Definition: qgswkbtypes.h:75
QgsWkbTypes::displayString
static QString displayString(Type type) SIP_HOLDGIL
Returns a display string type for a WKB type, e.g., the geometry name used in WKT geometry representa...
Definition: qgswkbtypes.cpp:145
QgsWkbTypes::CurvePolygonZM
@ CurvePolygonZM
Definition: qgswkbtypes.h:121
QgsWkbTypes::Point
@ Point
Definition: qgswkbtypes.h:72
QgsWkbTypes::MultiPolygon
@ MultiPolygon
Definition: qgswkbtypes.h:78
QgsWkbTypes::NullGeometry
@ NullGeometry
Definition: qgswkbtypes.h:146
QgsWkbTypes::Point25D
@ Point25D
Definition: qgswkbtypes.h:125
QgsWkbTypes::TriangleZ
@ TriangleZ
Definition: qgswkbtypes.h:89
QgsWkbTypes::MultiPolygonM
@ MultiPolygonM
Definition: qgswkbtypes.h:105
QgsWkbTypes::LineString25D
@ LineString25D
Definition: qgswkbtypes.h:126
QgsWkbTypes::GeometryCollectionM
@ GeometryCollectionM
Definition: qgswkbtypes.h:106
QgsWkbTypes::LineString
@ LineString
Definition: qgswkbtypes.h:73
QgsWkbTypes::MultiLineStringZ
@ MultiLineStringZ
Definition: qgswkbtypes.h:91
QgsWkbTypes::LineStringM
@ LineStringM
Definition: qgswkbtypes.h:100
QgsWkbTypes::geometryDisplayString
static QString geometryDisplayString(GeometryType type) SIP_HOLDGIL
Returns a display string for a geometry type.
Definition: qgswkbtypes.cpp:155
QgsWkbTypes::CompoundCurveZ
@ CompoundCurveZ
Definition: qgswkbtypes.h:95
QgsWkbTypes::LineStringZ
@ LineStringZ
Definition: qgswkbtypes.h:87
QgsWkbTypes::Type
Type
The WKB type describes the number of dimensions a geometry has.
Definition: qgswkbtypes.h:70
QgsWkbTypes::MultiCurve
@ MultiCurve
Definition: qgswkbtypes.h:83
QgsWkbTypes::GeometryCollectionZ
@ GeometryCollectionZ
Definition: qgswkbtypes.h:93
QgsWkbTypes::CompoundCurveZM
@ CompoundCurveZM
Definition: qgswkbtypes.h:120
QgsWkbTypes::MultiSurfaceM
@ MultiSurfaceM
Definition: qgswkbtypes.h:111
QgsWkbTypes::MultiPoint25D
@ MultiPoint25D
Definition: qgswkbtypes.h:128
QgsWkbTypes::PolygonGeometry
@ PolygonGeometry
Definition: qgswkbtypes.h:144
QgsWkbTypes::Polygon25D
@ Polygon25D
Definition: qgswkbtypes.h:127
QgsWkbTypes::CurvePolygonZ
@ CurvePolygonZ
Definition: qgswkbtypes.h:96
QgsWkbTypes::PointM
@ PointM
Definition: qgswkbtypes.h:99
QgsWkbTypes::PolygonZ
@ PolygonZ
Definition: qgswkbtypes.h:88
QgsWkbTypes::MultiLineString
@ MultiLineString
Definition: qgswkbtypes.h:77
QgsWkbTypes::PointZM
@ PointZM
Definition: qgswkbtypes.h:112
QgsWkbTypes::Unknown
@ Unknown
Definition: qgswkbtypes.h:71
QgsWkbTypes::GeometryCollection
@ GeometryCollection
Definition: qgswkbtypes.h:79
QgsWkbTypes::GeometryCollectionZM
@ GeometryCollectionZM
Definition: qgswkbtypes.h:118
QgsWkbTypes::MultiSurfaceZM
@ MultiSurfaceZM
Definition: qgswkbtypes.h:123
QgsWkbTypes::CurvePolygon
@ CurvePolygon
Definition: qgswkbtypes.h:82
QgsWkbTypes::MultiLineString25D
@ MultiLineString25D
Definition: qgswkbtypes.h:129
WkbEntry::mHasZ
bool mHasZ
Definition: qgswkbtypes.cpp:46
QgsWkbTypes::LineStringZM
@ LineStringZM
Definition: qgswkbtypes.h:113
WkbEntry::mGeometryType
QgsWkbTypes::GeometryType mGeometryType
Definition: qgswkbtypes.cpp:45
QgsWkbTypes::PointZ
@ PointZ
Definition: qgswkbtypes.h:86
QgsWkbTypes::MultiSurfaceZ
@ MultiSurfaceZ
Definition: qgswkbtypes.h:98
QgsWkbTypes::TriangleZM
@ TriangleZM
Definition: qgswkbtypes.h:124
QgsWkbTypes::MultiCurveZM
@ MultiCurveZM
Definition: qgswkbtypes.h:122
QgsWkbTypes::MultiPointZM
@ MultiPointZM
Definition: qgswkbtypes.h:115
Q_GLOBAL_STATIC_WITH_ARGS
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
QgsWkbTypes::MultiPolygonZ
@ MultiPolygonZ
Definition: qgswkbtypes.h:92
WkbEntry::mFlatType
QgsWkbTypes::Type mFlatType
Definition: qgswkbtypes.cpp:44
QgsWkbTypes::CircularStringZ
@ CircularStringZ
Definition: qgswkbtypes.h:94
WkbEntry::mMultiType
QgsWkbTypes::Type mMultiType
Definition: qgswkbtypes.cpp:42
QgsWkbTypes::CompoundCurveM
@ CompoundCurveM
Definition: qgswkbtypes.h:108
WkbEntry::mIsMultiType
bool mIsMultiType
Definition: qgswkbtypes.cpp:41
QgsWkbTypes::LineGeometry
@ LineGeometry
Definition: qgswkbtypes.h:143
QgsWkbTypes::CircularString
@ CircularString
Definition: qgswkbtypes.h:80
QgsWkbTypes::PointGeometry
@ PointGeometry
Definition: qgswkbtypes.h:142
QgsWkbTypes::PolygonM
@ PolygonM
Definition: qgswkbtypes.h:101
QgsWkbTypes::NoGeometry
@ NoGeometry
Definition: qgswkbtypes.h:85
QgsWkbTypes::MultiSurface
@ MultiSurface
Definition: qgswkbtypes.h:84
QgsWkbTypes::GeometryType
GeometryType
The geometry types are used to group QgsWkbTypes::Type in a coarse way.
Definition: qgswkbtypes.h:141
WkbEntry::WkbEntry
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
QgsWkbTypes::MultiPointM
@ MultiPointM
Definition: qgswkbtypes.h:103
QgsWkbTypes::Polygon
@ Polygon
Definition: qgswkbtypes.h:74
QgsWkbTypes::MultiPoint
@ MultiPoint
Definition: qgswkbtypes.h:76
QgsWkbTypes::MultiCurveZ
@ MultiCurveZ
Definition: qgswkbtypes.h:97
QgsWkbTypes::UnknownGeometry
@ UnknownGeometry
Definition: qgswkbtypes.h:145
WkbEntry::mSingleType
QgsWkbTypes::Type mSingleType
Definition: qgswkbtypes.cpp:43
WkbEntry
Definition: qgswkbtypes.cpp:28
QgsWkbTypes::CircularStringM
@ CircularStringM
Definition: qgswkbtypes.h:107
QgsWkbTypes::CurvePolygonM
@ CurvePolygonM
Definition: qgswkbtypes.h:109
QgsWkbTypes
Handles storage of information regarding WKB types and their properties.
Definition: qgswkbtypes.h:42
QgsWkbTypes::PolygonZM
@ PolygonZM
Definition: qgswkbtypes.h:114
QgsWkbTypes::MultiLineStringZM
@ MultiLineStringZM
Definition: qgswkbtypes.h:116
WkbEntries
QMap< QgsWkbTypes::Type, WkbEntry > WkbEntries
Definition: qgswkbtypes.cpp:50
QgsWkbTypes::MultiPolygon25D
@ MultiPolygon25D
Definition: qgswkbtypes.h:130
qgswkbtypes.h
QgsWkbTypes::TriangleM
@ TriangleM
Definition: qgswkbtypes.h:102
WkbEntry::mHasM
bool mHasM
Definition: qgswkbtypes.cpp:47
QgsWkbTypes::MultiLineStringM
@ MultiLineStringM
Definition: qgswkbtypes.h:104
QgsWkbTypes::MultiCurveM
@ MultiCurveM
Definition: qgswkbtypes.h:110
QgsWkbTypes::MultiPointZ
@ MultiPointZ
Definition: qgswkbtypes.h:90
QgsWkbTypes::CompoundCurve
@ CompoundCurve
Definition: qgswkbtypes.h:81
QgsWkbTypes::CircularStringZM
@ CircularStringZM
Definition: qgswkbtypes.h:119