QGIS API Documentation 3.41.0-Master (3440c17df1d)
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#include "moc_qgswkbtypes.cpp"
20
21/***************************************************************************
22 * This class is considered CRITICAL and any change MUST be accompanied with
23 * full unit tests.
24 * See details in QEP #17
25 ****************************************************************************/
26
27
29{
30 WkbEntry( const QString &name, bool isMultiType, Qgis::WkbType multiType, Qgis::WkbType singleType, Qgis::WkbType flatType, Qgis::GeometryType geometryType,
31 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 //compoundcurve
80 //polygonQgis::WkbTypes
86 //triangle
91 //curvepolygon
96 //polyhedralsurface
101 //TIN
106 //multipoint
112 //multiline
118 //multicurve
123 //multipolygon
129 //multisurface
134 //geometrycollection
139} ) )
140
141Qgis::WkbType QgsWkbTypes::parseType( const QString &wktStr )
142{
143 const QString typestr = wktStr.left( wktStr.indexOf( '(' ) ).simplified().remove( ' ' );
144
145 QMap<Qgis::WkbType, WkbEntry>::const_iterator it = sWkbEntries()->constBegin();
146 for ( ; it != sWkbEntries()->constEnd(); ++it )
147 {
148 if ( it.value().mName.compare( typestr, Qt::CaseInsensitive ) == 0 )
149 {
150 return it.key();
151 }
152 }
154}
155
157{
158 const QMap< Qgis::WkbType, WkbEntry >::const_iterator it = sWkbEntries()->constFind( type );
159 if ( it == sWkbEntries()->constEnd() )
160 {
161 return QString();
162 }
163 return it->mName;
164}
165
167{
168 switch ( type )
169 {
170 case Qgis::WkbType::Unknown: return QObject::tr( "Unknown" );
171 case Qgis::WkbType::Point: return QObject::tr( "Point" );
172 case Qgis::WkbType::LineString: return QObject::tr( "LineString" );
173 case Qgis::WkbType::Polygon: return QObject::tr( "Polygon" );
174 case Qgis::WkbType::Triangle: return QObject::tr( "Triangle" );
175 case Qgis::WkbType::PolyhedralSurface: return QObject::tr( "PolyhedralSurface" );
176 case Qgis::WkbType::TIN: return QObject::tr( "TIN" );
177 case Qgis::WkbType::MultiPoint: return QObject::tr( "MultiPoint" );
178 case Qgis::WkbType::MultiLineString: return QObject::tr( "MultiLine" );
179 case Qgis::WkbType::MultiPolygon: return QObject::tr( "MultiPolygon" );
180 case Qgis::WkbType::GeometryCollection: return QObject::tr( "GeometryCollection" );
181 case Qgis::WkbType::CircularString: return QObject::tr( "CircularString" );
182 case Qgis::WkbType::CompoundCurve: return QObject::tr( "CompoundCurve" );
183 case Qgis::WkbType::CurvePolygon: return QObject::tr( "CurvePolygon" );
184 case Qgis::WkbType::MultiCurve: return QObject::tr( "MultiCurve" );
185 case Qgis::WkbType::MultiSurface: return QObject::tr( "MultiSurface" );
186 case Qgis::WkbType::NoGeometry: return QObject::tr( "No Geometry" );
187 case Qgis::WkbType::PointZ: return QObject::tr( "PointZ" );
188 case Qgis::WkbType::LineStringZ: return QObject::tr( "LineStringZ" );
189 case Qgis::WkbType::PolygonZ: return QObject::tr( "PolygonZ" );
190 case Qgis::WkbType::TriangleZ: return QObject::tr( "TriangleZ" );
191 case Qgis::WkbType::PolyhedralSurfaceZ: return QObject::tr( "PolyhedralSurfaceZ" );
192 case Qgis::WkbType::TINZ: return QObject::tr( "TINZ" );
193 case Qgis::WkbType::MultiPointZ: return QObject::tr( "MultiPointZ" );
194 case Qgis::WkbType::MultiLineStringZ: return QObject::tr( "MultiLineZ" );
195 case Qgis::WkbType::MultiPolygonZ: return QObject::tr( "MultiPolygonZ" );
196 case Qgis::WkbType::GeometryCollectionZ: return QObject::tr( "GeometryCollectionZ" );
197 case Qgis::WkbType::CircularStringZ: return QObject::tr( "CircularStringZ" );
198 case Qgis::WkbType::CompoundCurveZ: return QObject::tr( "CompoundCurveZ" );
199 case Qgis::WkbType::CurvePolygonZ: return QObject::tr( "CurvePolygonZ" );
200 case Qgis::WkbType::MultiCurveZ: return QObject::tr( "MultiCurveZ" );
201 case Qgis::WkbType::MultiSurfaceZ: return QObject::tr( "MultiSurfaceZ" );
202 case Qgis::WkbType::PointM: return QObject::tr( "PointM" );
203 case Qgis::WkbType::LineStringM: return QObject::tr( "LineStringM" );
204 case Qgis::WkbType::PolygonM: return QObject::tr( "PolygonM" );
205 case Qgis::WkbType::TriangleM: return QObject::tr( "TriangleM" );
206 case Qgis::WkbType::PolyhedralSurfaceM: return QObject::tr( "PolyhedralSurfaceM" );
207 case Qgis::WkbType::TINM: return QObject::tr( "TINM" );
208 case Qgis::WkbType::MultiPointM: return QObject::tr( "MultiPointM" );
209 case Qgis::WkbType::MultiLineStringM: return QObject::tr( "MultiLineStringM" );
210 case Qgis::WkbType::MultiPolygonM: return QObject::tr( "MultiPolygonM" );
211 case Qgis::WkbType::GeometryCollectionM: return QObject::tr( "GeometryCollectionM" );
212 case Qgis::WkbType::CircularStringM: return QObject::tr( "CircularStringM" );
213 case Qgis::WkbType::CompoundCurveM: return QObject::tr( "CompoundCurveM" );
214 case Qgis::WkbType::CurvePolygonM: return QObject::tr( "CurvePolygonM" );
215 case Qgis::WkbType::MultiCurveM: return QObject::tr( "MultiCurveM" );
216 case Qgis::WkbType::MultiSurfaceM: return QObject::tr( "MultiSurfaceM" );
217 case Qgis::WkbType::PointZM: return QObject::tr( "PointZM" );
218 case Qgis::WkbType::LineStringZM: return QObject::tr( "LineStringZM" );
219 case Qgis::WkbType::PolygonZM: return QObject::tr( "PolygonZM" );
220 case Qgis::WkbType::PolyhedralSurfaceZM: return QObject::tr( "PolyhedralSurfaceZM" );
221 case Qgis::WkbType::TINZM: return QObject::tr( "TINZM" );
222 case Qgis::WkbType::MultiPointZM: return QObject::tr( "MultiPointZM" );
223 case Qgis::WkbType::MultiLineStringZM: return QObject::tr( "MultiLineZM" );
224 case Qgis::WkbType::MultiPolygonZM: return QObject::tr( "MultiPolygonZM" );
225 case Qgis::WkbType::GeometryCollectionZM: return QObject::tr( "GeometryCollectionZM" );
226 case Qgis::WkbType::CircularStringZM: return QObject::tr( "CircularStringZM" );
227 case Qgis::WkbType::CompoundCurveZM: return QObject::tr( "CompoundCurveZM" );
228 case Qgis::WkbType::CurvePolygonZM: return QObject::tr( "CurvePolygonZM" );
229 case Qgis::WkbType::MultiCurveZM: return QObject::tr( "MultiCurveZM" );
230 case Qgis::WkbType::MultiSurfaceZM: return QObject::tr( "MultiSurfaceZM" );
231 case Qgis::WkbType::TriangleZM: return QObject::tr( "TriangleZM" );
232 case Qgis::WkbType::Point25D: return QObject::tr( "Point25D" );
233 case Qgis::WkbType::LineString25D: return QObject::tr( "LineString25D" );
234 case Qgis::WkbType::Polygon25D: return QObject::tr( "Polygon25D" );
235 case Qgis::WkbType::MultiPoint25D: return QObject::tr( "MultiPoint25D" );
236 case Qgis::WkbType::MultiLineString25D: return QObject::tr( "MultiLineString25D" );
237 case Qgis::WkbType::MultiPolygon25D: return QObject::tr( "MultiPolygon25D" );
238 }
239 return QString();
240}
241
243{
244
245 switch ( type )
246 {
248 return QStringLiteral( "Point" );
250 return QStringLiteral( "Line" );
252 return QStringLiteral( "Polygon" );
254 return QStringLiteral( "Unknown geometry" );
256 return QStringLiteral( "No geometry" );
257 default:
258 return QStringLiteral( "Invalid type" );
259 }
260
261
262}
263
264/***************************************************************************
265 * This class is considered CRITICAL and any change MUST be accompanied with
266 * full unit tests.
267 * See details in QEP #17
268 ****************************************************************************/
The Qgis class provides global constants for use throughout the application.
Definition qgis.h:54
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Definition qgis.h:337
@ Polygon
Polygons.
@ Unknown
Unknown types.
@ Null
No geometry.
WkbType
The WKB type describes the number of dimensions a geometry has.
Definition qgis.h:256
@ LineString25D
LineString25D.
@ MultiSurfaceM
MultiSurfaceM.
@ PolyhedralSurfaceM
PolyhedralSurfaceM.
@ MultiLineStringZM
MultiLineStringZM.
@ MultiPointZM
MultiPointZM.
@ MultiPointZ
MultiPointZ.
@ CompoundCurve
CompoundCurve.
@ MultiPolygonZM
MultiPolygonZM.
@ LineStringM
LineStringM.
@ LineString
LineString.
@ MultiLineStringM
MultiLineStringM.
@ MultiPolygon25D
MultiPolygon25D.
@ MultiPointM
MultiPointM.
@ MultiPoint
MultiPoint.
@ LineStringZM
LineStringZM.
@ GeometryCollectionZM
GeometryCollectionZM.
@ TriangleZ
TriangleZ.
@ Polygon
Polygon.
@ CompoundCurveZM
CompoundCurveZM.
@ CompoundCurveM
CompoundCurveM.
@ MultiLineString25D
MultiLineString25D.
@ MultiPolygon
MultiPolygon.
@ GeometryCollectionZ
GeometryCollectionZ.
@ GeometryCollectionM
GeometryCollectionM.
@ CircularStringZM
CircularStringZM.
@ Triangle
Triangle.
@ PolygonM
PolygonM.
@ NoGeometry
No geometry.
@ MultiSurfaceZ
MultiSurfaceZ.
@ CurvePolygonZM
CurvePolygonZM.
@ MultiLineString
MultiLineString.
@ MultiPolygonM
MultiPolygonM.
@ MultiCurveZM
MultiCurveZM.
@ MultiSurfaceZM
MultiSurfaceZM.
@ PolygonZM
PolygonZM.
@ MultiPoint25D
MultiPoint25D.
@ Unknown
Unknown.
@ PointM
PointM.
@ CurvePolygonM
CurvePolygonM.
@ CircularString
CircularString.
@ PointZ
PointZ.
@ TriangleZM
TriangleZM.
@ MultiLineStringZ
MultiLineStringZ.
@ GeometryCollection
GeometryCollection.
@ PolyhedralSurfaceZM
PolyhedralSurfaceM.
@ MultiPolygonZ
MultiPolygonZ.
@ CurvePolygonZ
CurvePolygonZ.
@ MultiCurve
MultiCurve.
@ CompoundCurveZ
CompoundCurveZ.
@ MultiCurveZ
MultiCurveZ.
@ MultiCurveM
MultiCurveM.
@ PolyhedralSurfaceZ
PolyhedralSurfaceZ.
@ CircularStringM
CircularStringM.
@ CurvePolygon
CurvePolygon.
@ Point25D
Point25D.
@ PointZM
PointZM.
@ TriangleM
TriangleM.
@ CircularStringZ
CircularStringZ.
@ LineStringZ
LineStringZ.
@ PolyhedralSurface
PolyhedralSurface.
@ MultiSurface
MultiSurface.
@ PolygonZ
PolygonZ.
@ Polygon25D
Polygon25D.
Handles storage of information regarding WKB types and their properties.
Definition qgswkbtypes.h:42
static 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 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 QString geometryDisplayString(Qgis::GeometryType type)
Returns a display string for a geometry type.
Q_GLOBAL_STATIC_WITH_ARGS(WkbEntries, sWkbEntries,({ { Qgis::WkbType::Unknown, WkbEntry(QLatin1String("Unknown"), false, Qgis::WkbType::Unknown, Qgis::WkbType::Unknown, Qgis::WkbType::Unknown, Qgis::GeometryType::Unknown, false, false) }, { Qgis::WkbType::NoGeometry, WkbEntry(QLatin1String("NoGeometry"), false, Qgis::WkbType::NoGeometry, Qgis::WkbType::NoGeometry, Qgis::WkbType::NoGeometry, Qgis::GeometryType::Null, false, false) }, {Qgis::WkbType::Point, WkbEntry(QLatin1String("Point"), false, Qgis::WkbType::MultiPoint, Qgis::WkbType::Point, Qgis::WkbType::Point, Qgis::GeometryType::Point, false, false) }, {Qgis::WkbType::PointZ, WkbEntry(QLatin1String("PointZ"), false, Qgis::WkbType::MultiPointZ, Qgis::WkbType::PointZ, Qgis::WkbType::Point, Qgis::GeometryType::Point, true, false) }, {Qgis::WkbType::PointM, WkbEntry(QLatin1String("PointM"), false, Qgis::WkbType::MultiPointM, Qgis::WkbType::PointM, Qgis::WkbType::Point, Qgis::GeometryType::Point, false, true) }, {Qgis::WkbType::PointZM, WkbEntry(QLatin1String("PointZM"), false, Qgis::WkbType::MultiPointZM, Qgis::WkbType::PointZM, Qgis::WkbType::Point, Qgis::GeometryType::Point, true, true) }, {Qgis::WkbType::Point25D, WkbEntry(QLatin1String("Point25D"), false, Qgis::WkbType::MultiPoint25D, Qgis::WkbType::Point25D, Qgis::WkbType::Point, Qgis::GeometryType::Point, true, false) }, { Qgis::WkbType::LineString, WkbEntry(QLatin1String("LineString"), false, Qgis::WkbType::MultiLineString, Qgis::WkbType::LineString, Qgis::WkbType::LineString, Qgis::GeometryType::Line, false, false) }, { Qgis::WkbType::LineStringZ, WkbEntry(QLatin1String("LineStringZ"), false, Qgis::WkbType::MultiLineStringZ, Qgis::WkbType::LineStringZ, Qgis::WkbType::LineString, Qgis::GeometryType::Line, true, false) }, { Qgis::WkbType::LineStringM, WkbEntry(QLatin1String("LineStringM"), false, Qgis::WkbType::MultiLineStringM, Qgis::WkbType::LineStringM, Qgis::WkbType::LineString, Qgis::GeometryType::Line, false, true) }, { Qgis::WkbType::LineStringZM, WkbEntry(QLatin1String("LineStringZM"), false, Qgis::WkbType::MultiLineStringZM, Qgis::WkbType::LineStringZM, Qgis::WkbType::LineString, Qgis::GeometryType::Line, true, true) }, { Qgis::WkbType::LineString25D, WkbEntry(QLatin1String("LineString25D"), false, Qgis::WkbType::MultiLineString25D, Qgis::WkbType::LineString25D, Qgis::WkbType::LineString, Qgis::GeometryType::Line, true, false) }, { Qgis::WkbType::CircularString, WkbEntry(QLatin1String("CircularString"), false, Qgis::WkbType::MultiCurve, Qgis::WkbType::CircularString, Qgis::WkbType::CircularString, Qgis::GeometryType::Line, false, false) }, { Qgis::WkbType::CircularStringZ, WkbEntry(QLatin1String("CircularStringZ"), false, Qgis::WkbType::MultiCurveZ, Qgis::WkbType::CircularStringZ, Qgis::WkbType::CircularString, Qgis::GeometryType::Line, true, false) }, { Qgis::WkbType::CircularStringM, WkbEntry(QLatin1String("CircularStringM"), false, Qgis::WkbType::MultiCurveM, Qgis::WkbType::CircularStringM, Qgis::WkbType::CircularString, Qgis::GeometryType::Line, false, true) }, { Qgis::WkbType::CircularStringZM, WkbEntry(QLatin1String("CircularStringZM"), false, Qgis::WkbType::MultiCurveZM, Qgis::WkbType::CircularStringZM, Qgis::WkbType::CircularString, Qgis::GeometryType::Line, true, true) }, { Qgis::WkbType::CompoundCurve, WkbEntry(QLatin1String("CompoundCurve"), false, Qgis::WkbType::MultiCurve, Qgis::WkbType::CompoundCurve, Qgis::WkbType::CompoundCurve, Qgis::GeometryType::Line, false, false) }, { Qgis::WkbType::CompoundCurveZ, WkbEntry(QLatin1String("CompoundCurveZ"), false, Qgis::WkbType::MultiCurveZ, Qgis::WkbType::CompoundCurveZ, Qgis::WkbType::CompoundCurve, Qgis::GeometryType::Line, true, false) }, { Qgis::WkbType::CompoundCurveM, WkbEntry(QLatin1String("CompoundCurveM"), false, Qgis::WkbType::MultiCurveM, Qgis::WkbType::CompoundCurveM, Qgis::WkbType::CompoundCurve, Qgis::GeometryType::Line, false, true) }, { Qgis::WkbType::CompoundCurveZM, WkbEntry(QLatin1String("CompoundCurveZM"), false, Qgis::WkbType::MultiCurveZM, Qgis::WkbType::CompoundCurveZM, Qgis::WkbType::CompoundCurve, Qgis::GeometryType::Line, true, true) }, { Qgis::WkbType::Polygon, WkbEntry(QLatin1String("Polygon"), false, Qgis::WkbType::MultiPolygon, Qgis::WkbType::Polygon, Qgis::WkbType::Polygon, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::PolygonZ, WkbEntry(QLatin1String("PolygonZ"), false, Qgis::WkbType::MultiPolygonZ, Qgis::WkbType::PolygonZ, Qgis::WkbType::Polygon, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::PolygonM, WkbEntry(QLatin1String("PolygonM"), false, Qgis::WkbType::MultiPolygonM, Qgis::WkbType::PolygonM, Qgis::WkbType::Polygon, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::PolygonZM, WkbEntry(QLatin1String("PolygonZM"), false, Qgis::WkbType::MultiPolygonZM, Qgis::WkbType::PolygonZM, Qgis::WkbType::Polygon, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::Polygon25D, WkbEntry(QLatin1String("Polygon25D"), false, Qgis::WkbType::MultiPolygon25D, Qgis::WkbType::Polygon25D, Qgis::WkbType::Polygon, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::Triangle, WkbEntry(QLatin1String("Triangle"), false, Qgis::WkbType::Unknown, Qgis::WkbType::Triangle, Qgis::WkbType::Triangle, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::TriangleZ, WkbEntry(QLatin1String("TriangleZ"), false, Qgis::WkbType::Unknown, Qgis::WkbType::TriangleZ, Qgis::WkbType::Triangle, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::TriangleM, WkbEntry(QLatin1String("TriangleM"), false, Qgis::WkbType::Unknown, Qgis::WkbType::TriangleM, Qgis::WkbType::Triangle, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::TriangleZM, WkbEntry(QLatin1String("TriangleZM"), false, Qgis::WkbType::Unknown, Qgis::WkbType::TriangleZM, Qgis::WkbType::Triangle, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::CurvePolygon, WkbEntry(QLatin1String("CurvePolygon"), false, Qgis::WkbType::MultiSurface, Qgis::WkbType::CurvePolygon, Qgis::WkbType::CurvePolygon, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::CurvePolygonZ, WkbEntry(QLatin1String("CurvePolygonZ"), false, Qgis::WkbType::MultiSurfaceZ, Qgis::WkbType::CurvePolygonZ, Qgis::WkbType::CurvePolygon, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::CurvePolygonM, WkbEntry(QLatin1String("CurvePolygonM"), false, Qgis::WkbType::MultiSurfaceM, Qgis::WkbType::CurvePolygonM, Qgis::WkbType::CurvePolygon, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::CurvePolygonZM, WkbEntry(QLatin1String("CurvePolygonZM"), false, Qgis::WkbType::MultiSurfaceZM, Qgis::WkbType::CurvePolygonZM, Qgis::WkbType::CurvePolygon, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::PolyhedralSurface, WkbEntry(QLatin1String("PolyhedralSurface"), false, Qgis::WkbType::MultiPolygon, Qgis::WkbType::PolyhedralSurface, Qgis::WkbType::PolyhedralSurface, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::PolyhedralSurfaceZ, WkbEntry(QLatin1String("PolyhedralSurfaceZ"), false, Qgis::WkbType::MultiPolygonZ, Qgis::WkbType::PolyhedralSurfaceZ, Qgis::WkbType::PolyhedralSurface, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::PolyhedralSurfaceM, WkbEntry(QLatin1String("PolyhedralSurfaceM"), false, Qgis::WkbType::MultiPolygonM, Qgis::WkbType::PolyhedralSurfaceM, Qgis::WkbType::PolyhedralSurface, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::PolyhedralSurfaceZM, WkbEntry(QLatin1String("PolyhedralSurfaceZM"), false, Qgis::WkbType::MultiPolygonZM, Qgis::WkbType::PolyhedralSurfaceZM, Qgis::WkbType::PolyhedralSurface, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::TIN, WkbEntry(QLatin1String("TIN"), false, Qgis::WkbType::MultiPolygon, Qgis::WkbType::TIN, Qgis::WkbType::TIN, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::TINZ, WkbEntry(QLatin1String("TINZ"), false, Qgis::WkbType::MultiPolygonZ, Qgis::WkbType::TIN, Qgis::WkbType::TINZ, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::TINM, WkbEntry(QLatin1String("TINM"), false, Qgis::WkbType::MultiPolygonM, Qgis::WkbType::TIN, Qgis::WkbType::TINM, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::TINZM, WkbEntry(QLatin1String("TINZM"), false, Qgis::WkbType::MultiPolygonZM, Qgis::WkbType::TIN, Qgis::WkbType::TINZM, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::MultiPoint, WkbEntry(QLatin1String("MultiPoint"), true, Qgis::WkbType::MultiPoint, Qgis::WkbType::Point, Qgis::WkbType::MultiPoint, Qgis::GeometryType::Point, false, false) }, { Qgis::WkbType::MultiPointZ, WkbEntry(QLatin1String("MultiPointZ"), true, Qgis::WkbType::MultiPointZ, Qgis::WkbType::PointZ, Qgis::WkbType::MultiPoint, Qgis::GeometryType::Point, true, false) }, { Qgis::WkbType::MultiPointM, WkbEntry(QLatin1String("MultiPointM"), true, Qgis::WkbType::MultiPointM, Qgis::WkbType::PointM, Qgis::WkbType::MultiPoint, Qgis::GeometryType::Point, false, true) }, { Qgis::WkbType::MultiPointZM, WkbEntry(QLatin1String("MultiPointZM"), true, Qgis::WkbType::MultiPointZM, Qgis::WkbType::PointZM, Qgis::WkbType::MultiPoint, Qgis::GeometryType::Point, true, true) }, { Qgis::WkbType::MultiPoint25D, WkbEntry(QLatin1String("MultiPoint25D"), true, Qgis::WkbType::MultiPoint25D, Qgis::WkbType::Point25D, Qgis::WkbType::MultiPoint, Qgis::GeometryType::Point, true, false) }, {Qgis::WkbType::MultiLineString, WkbEntry(QLatin1String("MultiLineString"), true, Qgis::WkbType::MultiLineString, Qgis::WkbType::LineString, Qgis::WkbType::MultiLineString, Qgis::GeometryType::Line, false, false) }, {Qgis::WkbType::MultiLineStringZ, WkbEntry(QLatin1String("MultiLineStringZ"), true, Qgis::WkbType::MultiLineStringZ, Qgis::WkbType::LineStringZ, Qgis::WkbType::MultiLineString, Qgis::GeometryType::Line, true, false) }, {Qgis::WkbType::MultiLineStringM, WkbEntry(QLatin1String("MultiLineStringM"), true, Qgis::WkbType::MultiLineStringM, Qgis::WkbType::LineStringM, Qgis::WkbType::MultiLineString, Qgis::GeometryType::Line, false, true) }, {Qgis::WkbType::MultiLineStringZM, WkbEntry(QLatin1String("MultiLineStringZM"), true, Qgis::WkbType::MultiLineStringZM, Qgis::WkbType::LineStringZM, Qgis::WkbType::MultiLineString, Qgis::GeometryType::Line, true, true) }, {Qgis::WkbType::MultiLineString25D, WkbEntry(QLatin1String("MultiLineString25D"), true, Qgis::WkbType::MultiLineString25D, Qgis::WkbType::LineString25D, Qgis::WkbType::MultiLineString, Qgis::GeometryType::Line, true, false) }, {Qgis::WkbType::MultiCurve, WkbEntry(QLatin1String("MultiCurve"), true, Qgis::WkbType::MultiCurve, Qgis::WkbType::CompoundCurve, Qgis::WkbType::MultiCurve, Qgis::GeometryType::Line, false, false) }, {Qgis::WkbType::MultiCurveZ, WkbEntry(QLatin1String("MultiCurveZ"), true, Qgis::WkbType::MultiCurveZ, Qgis::WkbType::CompoundCurveZ, Qgis::WkbType::MultiCurve, Qgis::GeometryType::Line, true, false) }, {Qgis::WkbType::MultiCurveM, WkbEntry(QLatin1String("MultiCurveM"), true, Qgis::WkbType::MultiCurveM, Qgis::WkbType::CompoundCurveM, Qgis::WkbType::MultiCurve, Qgis::GeometryType::Line, false, true) }, {Qgis::WkbType::MultiCurveZM, WkbEntry(QLatin1String("MultiCurveZM"), true, Qgis::WkbType::MultiCurveZM, Qgis::WkbType::CompoundCurveZM, Qgis::WkbType::MultiCurve, Qgis::GeometryType::Line, true, true) }, { Qgis::WkbType::MultiPolygon, WkbEntry(QLatin1String("MultiPolygon"), true, Qgis::WkbType::MultiPolygon, Qgis::WkbType::Polygon, Qgis::WkbType::MultiPolygon, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::MultiPolygonZ, WkbEntry(QLatin1String("MultiPolygonZ"), true, Qgis::WkbType::MultiPolygonZ, Qgis::WkbType::PolygonZ, Qgis::WkbType::MultiPolygon, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::MultiPolygonM, WkbEntry(QLatin1String("MultiPolygonM"), true, Qgis::WkbType::MultiPolygonM, Qgis::WkbType::PolygonM, Qgis::WkbType::MultiPolygon, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::MultiPolygonZM, WkbEntry(QLatin1String("MultiPolygonZM"), true, Qgis::WkbType::MultiPolygonZM, Qgis::WkbType::PolygonZM, Qgis::WkbType::MultiPolygon, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::MultiPolygon25D, WkbEntry(QLatin1String("MultiPolygon25D"), true, Qgis::WkbType::MultiPolygon25D, Qgis::WkbType::Polygon25D, Qgis::WkbType::MultiPolygon, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::MultiSurface, WkbEntry(QLatin1String("MultiSurface"), true, Qgis::WkbType::MultiSurface, Qgis::WkbType::CurvePolygon, Qgis::WkbType::MultiSurface, Qgis::GeometryType::Polygon, false, false) }, { Qgis::WkbType::MultiSurfaceZ, WkbEntry(QLatin1String("MultiSurfaceZ"), true, Qgis::WkbType::MultiSurfaceZ, Qgis::WkbType::CurvePolygonZ, Qgis::WkbType::MultiSurface, Qgis::GeometryType::Polygon, true, false) }, { Qgis::WkbType::MultiSurfaceM, WkbEntry(QLatin1String("MultiSurfaceM"), true, Qgis::WkbType::MultiSurfaceM, Qgis::WkbType::CurvePolygonM, Qgis::WkbType::MultiSurface, Qgis::GeometryType::Polygon, false, true) }, { Qgis::WkbType::MultiSurfaceZM, WkbEntry(QLatin1String("MultiSurfaceZM"), true, Qgis::WkbType::MultiSurfaceZM, Qgis::WkbType::CurvePolygonZM, Qgis::WkbType::MultiSurface, Qgis::GeometryType::Polygon, true, true) }, { Qgis::WkbType::GeometryCollection, WkbEntry(QLatin1String("GeometryCollection"), true, Qgis::WkbType::GeometryCollection, Qgis::WkbType::Unknown, Qgis::WkbType::GeometryCollection, Qgis::GeometryType::Unknown, false, false) }, { Qgis::WkbType::GeometryCollectionZ, WkbEntry(QLatin1String("GeometryCollectionZ"), true, Qgis::WkbType::GeometryCollectionZ, Qgis::WkbType::Unknown, Qgis::WkbType::GeometryCollection, Qgis::GeometryType::Unknown, true, false) }, { Qgis::WkbType::GeometryCollectionM, WkbEntry(QLatin1String("GeometryCollectionM"), true, Qgis::WkbType::GeometryCollectionM, Qgis::WkbType::Unknown, Qgis::WkbType::GeometryCollection, Qgis::GeometryType::Unknown, false, true) }, { Qgis::WkbType::GeometryCollectionZM, WkbEntry(QLatin1String("GeometryCollectionZM"), 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