qgis: Add support for polyhedralsurface type

This commit is contained in:
Jean Felder 2024-08-06 12:47:46 +02:00 committed by Loïc Bartoletti
parent e99d4d2306
commit 3295d7e803
9 changed files with 198 additions and 4 deletions

View File

@ -235,6 +235,9 @@ QgsWkbTypes.MultiCurve.__doc__ = "MultiCurve"
QgsWkbTypes.MultiSurface = Qgis.WkbType.MultiSurface
QgsWkbTypes.MultiSurface.is_monkey_patched = True
QgsWkbTypes.MultiSurface.__doc__ = "MultiSurface"
QgsWkbTypes.PolyhedralSurface = Qgis.WkbType.PolyhedralSurface
QgsWkbTypes.PolyhedralSurface.is_monkey_patched = True
QgsWkbTypes.PolyhedralSurface.__doc__ = "PolyhedralSurface"
QgsWkbTypes.NoGeometry = Qgis.WkbType.NoGeometry
QgsWkbTypes.NoGeometry.is_monkey_patched = True
QgsWkbTypes.NoGeometry.__doc__ = "No geometry"
@ -277,6 +280,9 @@ QgsWkbTypes.MultiCurveZ.__doc__ = "MultiCurveZ"
QgsWkbTypes.MultiSurfaceZ = Qgis.WkbType.MultiSurfaceZ
QgsWkbTypes.MultiSurfaceZ.is_monkey_patched = True
QgsWkbTypes.MultiSurfaceZ.__doc__ = "MultiSurfaceZ"
QgsWkbTypes.PolyhedralSurfaceZ = Qgis.WkbType.PolyhedralSurfaceZ
QgsWkbTypes.PolyhedralSurfaceZ.is_monkey_patched = True
QgsWkbTypes.PolyhedralSurfaceZ.__doc__ = "PolyhedralSurfaceZ"
QgsWkbTypes.PointM = Qgis.WkbType.PointM
QgsWkbTypes.PointM.is_monkey_patched = True
QgsWkbTypes.PointM.__doc__ = "PointM"
@ -316,6 +322,9 @@ QgsWkbTypes.MultiCurveM.__doc__ = "MultiCurveM"
QgsWkbTypes.MultiSurfaceM = Qgis.WkbType.MultiSurfaceM
QgsWkbTypes.MultiSurfaceM.is_monkey_patched = True
QgsWkbTypes.MultiSurfaceM.__doc__ = "MultiSurfaceM"
QgsWkbTypes.PolyhedralSurfaceM = Qgis.WkbType.PolyhedralSurfaceM
QgsWkbTypes.PolyhedralSurfaceM.is_monkey_patched = True
QgsWkbTypes.PolyhedralSurfaceM.__doc__ = "PolyhedralSurfaceM"
QgsWkbTypes.PointZM = Qgis.WkbType.PointZM
QgsWkbTypes.PointZM.is_monkey_patched = True
QgsWkbTypes.PointZM.__doc__ = "PointZM"
@ -352,6 +361,9 @@ QgsWkbTypes.MultiCurveZM.__doc__ = "MultiCurveZM"
QgsWkbTypes.MultiSurfaceZM = Qgis.WkbType.MultiSurfaceZM
QgsWkbTypes.MultiSurfaceZM.is_monkey_patched = True
QgsWkbTypes.MultiSurfaceZM.__doc__ = "MultiSurfaceZM"
QgsWkbTypes.PolyhedralSurfaceZM = Qgis.WkbType.PolyhedralSurfaceZM
QgsWkbTypes.PolyhedralSurfaceZM.is_monkey_patched = True
QgsWkbTypes.PolyhedralSurfaceZM.__doc__ = "PolyhedralSurfaceM"
QgsWkbTypes.TriangleZM = Qgis.WkbType.TriangleZM
QgsWkbTypes.TriangleZM.is_monkey_patched = True
QgsWkbTypes.TriangleZM.__doc__ = "TriangleZM"
@ -415,6 +427,7 @@ a different mode.
* ``CurvePolygon``: CurvePolygon
* ``MultiCurve``: MultiCurve
* ``MultiSurface``: MultiSurface
* ``PolyhedralSurface``: PolyhedralSurface
* ``NoGeometry``: No geometry
* ``PointZ``: PointZ
* ``LineStringZ``: LineStringZ
@ -429,6 +442,7 @@ a different mode.
* ``CurvePolygonZ``: CurvePolygonZ
* ``MultiCurveZ``: MultiCurveZ
* ``MultiSurfaceZ``: MultiSurfaceZ
* ``PolyhedralSurfaceZ``: PolyhedralSurfaceZ
* ``PointM``: PointM
* ``LineStringM``: LineStringM
* ``PolygonM``: PolygonM
@ -442,6 +456,7 @@ a different mode.
* ``CurvePolygonM``: CurvePolygonM
* ``MultiCurveM``: MultiCurveM
* ``MultiSurfaceM``: MultiSurfaceM
* ``PolyhedralSurfaceM``: PolyhedralSurfaceM
* ``PointZM``: PointZM
* ``LineStringZM``: LineStringZM
* ``PolygonZM``: PolygonZM
@ -454,6 +469,7 @@ a different mode.
* ``CurvePolygonZM``: CurvePolygonZM
* ``MultiCurveZM``: MultiCurveZM
* ``MultiSurfaceZM``: MultiSurfaceZM
* ``PolyhedralSurfaceZM``: PolyhedralSurfaceM
* ``TriangleZM``: TriangleZM
* ``Point25D``: Point25D
* ``LineString25D``: LineString25D

View File

@ -133,6 +133,7 @@ The development version
CurvePolygon,
MultiCurve,
MultiSurface,
PolyhedralSurface,
NoGeometry,
PointZ,
LineStringZ,
@ -147,6 +148,7 @@ The development version
CurvePolygonZ,
MultiCurveZ,
MultiSurfaceZ,
PolyhedralSurfaceZ,
PointM,
LineStringM,
PolygonM,
@ -160,6 +162,7 @@ The development version
CurvePolygonM,
MultiCurveM,
MultiSurfaceM,
PolyhedralSurfaceM,
PointZM,
LineStringZM,
PolygonZM,
@ -172,6 +175,7 @@ The development version
CurvePolygonZM,
MultiCurveZM,
MultiSurfaceZM,
PolyhedralSurfaceZM,
TriangleZM,
Point25D,
LineString25D,

View File

@ -228,6 +228,9 @@ QgsWkbTypes.MultiCurve.__doc__ = "MultiCurve"
QgsWkbTypes.MultiSurface = Qgis.WkbType.MultiSurface
QgsWkbTypes.MultiSurface.is_monkey_patched = True
QgsWkbTypes.MultiSurface.__doc__ = "MultiSurface"
QgsWkbTypes.PolyhedralSurface = Qgis.WkbType.PolyhedralSurface
QgsWkbTypes.PolyhedralSurface.is_monkey_patched = True
QgsWkbTypes.PolyhedralSurface.__doc__ = "PolyhedralSurface"
QgsWkbTypes.NoGeometry = Qgis.WkbType.NoGeometry
QgsWkbTypes.NoGeometry.is_monkey_patched = True
QgsWkbTypes.NoGeometry.__doc__ = "No geometry"
@ -270,6 +273,9 @@ QgsWkbTypes.MultiCurveZ.__doc__ = "MultiCurveZ"
QgsWkbTypes.MultiSurfaceZ = Qgis.WkbType.MultiSurfaceZ
QgsWkbTypes.MultiSurfaceZ.is_monkey_patched = True
QgsWkbTypes.MultiSurfaceZ.__doc__ = "MultiSurfaceZ"
QgsWkbTypes.PolyhedralSurfaceZ = Qgis.WkbType.PolyhedralSurfaceZ
QgsWkbTypes.PolyhedralSurfaceZ.is_monkey_patched = True
QgsWkbTypes.PolyhedralSurfaceZ.__doc__ = "PolyhedralSurfaceZ"
QgsWkbTypes.PointM = Qgis.WkbType.PointM
QgsWkbTypes.PointM.is_monkey_patched = True
QgsWkbTypes.PointM.__doc__ = "PointM"
@ -309,6 +315,9 @@ QgsWkbTypes.MultiCurveM.__doc__ = "MultiCurveM"
QgsWkbTypes.MultiSurfaceM = Qgis.WkbType.MultiSurfaceM
QgsWkbTypes.MultiSurfaceM.is_monkey_patched = True
QgsWkbTypes.MultiSurfaceM.__doc__ = "MultiSurfaceM"
QgsWkbTypes.PolyhedralSurfaceM = Qgis.WkbType.PolyhedralSurfaceM
QgsWkbTypes.PolyhedralSurfaceM.is_monkey_patched = True
QgsWkbTypes.PolyhedralSurfaceM.__doc__ = "PolyhedralSurfaceM"
QgsWkbTypes.PointZM = Qgis.WkbType.PointZM
QgsWkbTypes.PointZM.is_monkey_patched = True
QgsWkbTypes.PointZM.__doc__ = "PointZM"
@ -345,6 +354,9 @@ QgsWkbTypes.MultiCurveZM.__doc__ = "MultiCurveZM"
QgsWkbTypes.MultiSurfaceZM = Qgis.WkbType.MultiSurfaceZM
QgsWkbTypes.MultiSurfaceZM.is_monkey_patched = True
QgsWkbTypes.MultiSurfaceZM.__doc__ = "MultiSurfaceZM"
QgsWkbTypes.PolyhedralSurfaceZM = Qgis.WkbType.PolyhedralSurfaceZM
QgsWkbTypes.PolyhedralSurfaceZM.is_monkey_patched = True
QgsWkbTypes.PolyhedralSurfaceZM.__doc__ = "PolyhedralSurfaceM"
QgsWkbTypes.TriangleZM = Qgis.WkbType.TriangleZM
QgsWkbTypes.TriangleZM.is_monkey_patched = True
QgsWkbTypes.TriangleZM.__doc__ = "TriangleZM"
@ -408,6 +420,7 @@ a different mode.
* ``CurvePolygon``: CurvePolygon
* ``MultiCurve``: MultiCurve
* ``MultiSurface``: MultiSurface
* ``PolyhedralSurface``: PolyhedralSurface
* ``NoGeometry``: No geometry
* ``PointZ``: PointZ
* ``LineStringZ``: LineStringZ
@ -422,6 +435,7 @@ a different mode.
* ``CurvePolygonZ``: CurvePolygonZ
* ``MultiCurveZ``: MultiCurveZ
* ``MultiSurfaceZ``: MultiSurfaceZ
* ``PolyhedralSurfaceZ``: PolyhedralSurfaceZ
* ``PointM``: PointM
* ``LineStringM``: LineStringM
* ``PolygonM``: PolygonM
@ -435,6 +449,7 @@ a different mode.
* ``CurvePolygonM``: CurvePolygonM
* ``MultiCurveM``: MultiCurveM
* ``MultiSurfaceM``: MultiSurfaceM
* ``PolyhedralSurfaceM``: PolyhedralSurfaceM
* ``PointZM``: PointZM
* ``LineStringZM``: LineStringZM
* ``PolygonZM``: PolygonZM
@ -447,6 +462,7 @@ a different mode.
* ``CurvePolygonZM``: CurvePolygonZM
* ``MultiCurveZM``: MultiCurveZM
* ``MultiSurfaceZM``: MultiSurfaceZM
* ``PolyhedralSurfaceZM``: PolyhedralSurfaceM
* ``TriangleZM``: TriangleZM
* ``Point25D``: Point25D
* ``LineString25D``: LineString25D

View File

@ -133,6 +133,7 @@ The development version
CurvePolygon,
MultiCurve,
MultiSurface,
PolyhedralSurface,
NoGeometry,
PointZ,
LineStringZ,
@ -147,6 +148,7 @@ The development version
CurvePolygonZ,
MultiCurveZ,
MultiSurfaceZ,
PolyhedralSurfaceZ,
PointM,
LineStringM,
PolygonM,
@ -160,6 +162,7 @@ The development version
CurvePolygonM,
MultiCurveM,
MultiSurfaceM,
PolyhedralSurfaceM,
PointZM,
LineStringZM,
PolygonZM,
@ -172,6 +175,7 @@ The development version
CurvePolygonZM,
MultiCurveZM,
MultiSurfaceZM,
PolyhedralSurfaceZM,
TriangleZM,
Point25D,
LineString25D,

View File

@ -92,6 +92,11 @@ Q_GLOBAL_STATIC_WITH_ARGS( WkbEntries, sWkbEntries, (
{ 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 ) },
//polyhedralsurface
{ 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 ) },
//multipoint
{ 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 ) },
@ -161,6 +166,7 @@ QString QgsWkbTypes::translatedDisplayString( Qgis::WkbType type )
case Qgis::WkbType::LineString: return QObject::tr( "LineString" );
case Qgis::WkbType::Polygon: return QObject::tr( "Polygon" );
case Qgis::WkbType::Triangle: return QObject::tr( "Triangle" );
case Qgis::WkbType::PolyhedralSurface: return QObject::tr( "PolyhedralSurface" );
case Qgis::WkbType::MultiPoint: return QObject::tr( "MultiPoint" );
case Qgis::WkbType::MultiLineString: return QObject::tr( "MultiLine" );
case Qgis::WkbType::MultiPolygon: return QObject::tr( "MultiPolygon" );
@ -175,6 +181,7 @@ QString QgsWkbTypes::translatedDisplayString( Qgis::WkbType type )
case Qgis::WkbType::LineStringZ: return QObject::tr( "LineStringZ" );
case Qgis::WkbType::PolygonZ: return QObject::tr( "PolygonZ" );
case Qgis::WkbType::TriangleZ: return QObject::tr( "TriangleZ" );
case Qgis::WkbType::PolyhedralSurfaceZ: return QObject::tr( "PolyhedralSurfaceZ" );
case Qgis::WkbType::MultiPointZ: return QObject::tr( "MultiPointZ" );
case Qgis::WkbType::MultiLineStringZ: return QObject::tr( "MultiLineZ" );
case Qgis::WkbType::MultiPolygonZ: return QObject::tr( "MultiPolygonZ" );
@ -188,6 +195,7 @@ QString QgsWkbTypes::translatedDisplayString( Qgis::WkbType type )
case Qgis::WkbType::LineStringM: return QObject::tr( "LineStringM" );
case Qgis::WkbType::PolygonM: return QObject::tr( "PolygonM" );
case Qgis::WkbType::TriangleM: return QObject::tr( "TriangleM" );
case Qgis::WkbType::PolyhedralSurfaceM: return QObject::tr( "PolyhedralSurfaceM" );
case Qgis::WkbType::MultiPointM: return QObject::tr( "MultiPointM" );
case Qgis::WkbType::MultiLineStringM: return QObject::tr( "MultiLineStringM" );
case Qgis::WkbType::MultiPolygonM: return QObject::tr( "MultiPolygonM" );
@ -200,6 +208,7 @@ QString QgsWkbTypes::translatedDisplayString( Qgis::WkbType type )
case Qgis::WkbType::PointZM: return QObject::tr( "PointZM" );
case Qgis::WkbType::LineStringZM: return QObject::tr( "LineStringZM" );
case Qgis::WkbType::PolygonZM: return QObject::tr( "PolygonZM" );
case Qgis::WkbType::PolyhedralSurfaceZM: return QObject::tr( "PolyhedralSurfaceZM" );
case Qgis::WkbType::MultiPointZM: return QObject::tr( "MultiPointZM" );
case Qgis::WkbType::MultiLineStringZM: return QObject::tr( "MultiLineZM" );
case Qgis::WkbType::MultiPolygonZM: return QObject::tr( "MultiPolygonZM" );

View File

@ -169,6 +169,18 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::MultiSurfaceZM:
return Qgis::WkbType::CurvePolygonZM;
case Qgis::WkbType::PolyhedralSurface:
return Qgis::WkbType::PolyhedralSurface;
case Qgis::WkbType::PolyhedralSurfaceZ:
return Qgis::WkbType::PolyhedralSurfaceZ;
case Qgis::WkbType::PolyhedralSurfaceM:
return Qgis::WkbType::PolyhedralSurfaceM;
case Qgis::WkbType::PolyhedralSurfaceZM:
return Qgis::WkbType::PolyhedralSurfaceZM;
case Qgis::WkbType::NoGeometry:
return Qgis::WkbType::NoGeometry;
@ -263,18 +275,22 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::Polygon:
case Qgis::WkbType::MultiPolygon:
case Qgis::WkbType::PolyhedralSurface:
return Qgis::WkbType::MultiPolygon;
case Qgis::WkbType::PolygonZ:
case Qgis::WkbType::MultiPolygonZ:
case Qgis::WkbType::PolyhedralSurfaceZ:
return Qgis::WkbType::MultiPolygonZ;
case Qgis::WkbType::PolygonM:
case Qgis::WkbType::MultiPolygonM:
case Qgis::WkbType::PolyhedralSurfaceM:
return Qgis::WkbType::MultiPolygonM;
case Qgis::WkbType::PolygonZM:
case Qgis::WkbType::MultiPolygonZM:
case Qgis::WkbType::PolyhedralSurfaceZM:
return Qgis::WkbType::MultiPolygonZM;
case Qgis::WkbType::CompoundCurve:
@ -465,6 +481,7 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::MultiPolygon:
case Qgis::WkbType::MultiSurface:
case Qgis::WkbType::PolyhedralSurface:
return Qgis::WkbType::MultiSurface;
case Qgis::WkbType::PolygonZ:
@ -474,6 +491,7 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::MultiPolygonZ:
case Qgis::WkbType::MultiSurfaceZ:
case Qgis::WkbType::PolyhedralSurfaceZ:
case Qgis::WkbType::MultiPolygon25D:
return Qgis::WkbType::MultiSurfaceZ;
@ -483,6 +501,7 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::MultiPolygonM:
case Qgis::WkbType::MultiSurfaceM:
case Qgis::WkbType::PolyhedralSurfaceM:
return Qgis::WkbType::MultiSurfaceM;
case Qgis::WkbType::PolygonZM:
@ -491,6 +510,7 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::MultiPolygonZM:
case Qgis::WkbType::MultiSurfaceZM:
case Qgis::WkbType::PolyhedralSurfaceZM:
return Qgis::WkbType::MultiSurfaceZM;
case Qgis::WkbType::NoGeometry:
@ -607,6 +627,10 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::PolygonM:
case Qgis::WkbType::PolygonZ:
case Qgis::WkbType::PolygonZM:
case Qgis::WkbType::PolyhedralSurface:
case Qgis::WkbType::PolyhedralSurfaceM:
case Qgis::WkbType::PolyhedralSurfaceZ:
case Qgis::WkbType::PolyhedralSurfaceZM:
case Qgis::WkbType::Triangle:
case Qgis::WkbType::TriangleM:
case Qgis::WkbType::TriangleZ:
@ -716,6 +740,12 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::MultiSurfaceZM:
return Qgis::WkbType::MultiSurface;
case Qgis::WkbType::PolyhedralSurface:
case Qgis::WkbType::PolyhedralSurfaceZ:
case Qgis::WkbType::PolyhedralSurfaceM:
case Qgis::WkbType::PolyhedralSurfaceZM:
return Qgis::WkbType::PolyhedralSurface;
case Qgis::WkbType::NoGeometry:
return Qgis::WkbType::NoGeometry;
@ -767,6 +797,7 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::CircularString:
case Qgis::WkbType::CompoundCurve:
case Qgis::WkbType::CurvePolygon:
case Qgis::WkbType::PolyhedralSurface:
case Qgis::WkbType::NoGeometry:
case Qgis::WkbType::PointZ:
case Qgis::WkbType::LineStringZ:
@ -775,6 +806,7 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::CircularStringZ:
case Qgis::WkbType::CompoundCurveZ:
case Qgis::WkbType::CurvePolygonZ:
case Qgis::WkbType::PolyhedralSurfaceZ:
case Qgis::WkbType::PointM:
case Qgis::WkbType::LineStringM:
case Qgis::WkbType::PolygonM:
@ -782,6 +814,7 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::CircularStringM:
case Qgis::WkbType::CompoundCurveM:
case Qgis::WkbType::CurvePolygonM:
case Qgis::WkbType::PolyhedralSurfaceM:
case Qgis::WkbType::PointZM:
case Qgis::WkbType::LineStringZM:
case Qgis::WkbType::PolygonZM:
@ -789,6 +822,7 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::CircularStringZM:
case Qgis::WkbType::CompoundCurveZM:
case Qgis::WkbType::CurvePolygonZM:
case Qgis::WkbType::PolyhedralSurfaceZM:
case Qgis::WkbType::Point25D:
case Qgis::WkbType::LineString25D:
case Qgis::WkbType::Polygon25D:
@ -922,12 +956,16 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::MultiPolygon25D:
case Qgis::WkbType::CurvePolygon:
case Qgis::WkbType::MultiSurface:
case Qgis::WkbType::PolyhedralSurface:
case Qgis::WkbType::CurvePolygonZ:
case Qgis::WkbType::MultiSurfaceZ:
case Qgis::WkbType::PolyhedralSurfaceZ:
case Qgis::WkbType::CurvePolygonM:
case Qgis::WkbType::MultiSurfaceM:
case Qgis::WkbType::PolyhedralSurfaceM:
case Qgis::WkbType::CurvePolygonZM:
case Qgis::WkbType::MultiSurfaceZM:
case Qgis::WkbType::PolyhedralSurfaceZM:
return Qgis::GeometryType::Polygon;
case Qgis::WkbType::NoGeometry:
@ -977,6 +1015,7 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::PointZ:
case Qgis::WkbType::LineStringZ:
case Qgis::WkbType::PolygonZ:
case Qgis::WkbType::PolyhedralSurfaceZ:
case Qgis::WkbType::TriangleZ:
case Qgis::WkbType::MultiPointZ:
case Qgis::WkbType::MultiLineStringZ:
@ -990,6 +1029,7 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::PointZM:
case Qgis::WkbType::LineStringZM:
case Qgis::WkbType::PolygonZM:
case Qgis::WkbType::PolyhedralSurfaceZM:
case Qgis::WkbType::TriangleZM:
case Qgis::WkbType::MultiPointZM:
case Qgis::WkbType::MultiLineStringZM:
@ -1027,6 +1067,7 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::PointM:
case Qgis::WkbType::LineStringM:
case Qgis::WkbType::PolygonM:
case Qgis::WkbType::PolyhedralSurfaceM:
case Qgis::WkbType::TriangleM:
case Qgis::WkbType::MultiPointM:
case Qgis::WkbType::MultiLineStringM:
@ -1040,6 +1081,7 @@ class CORE_EXPORT QgsWkbTypes
case Qgis::WkbType::PointZM:
case Qgis::WkbType::LineStringZM:
case Qgis::WkbType::PolygonZM:
case Qgis::WkbType::PolyhedralSurfaceZM:
case Qgis::WkbType::TriangleZM:
case Qgis::WkbType::MultiPointZM:
case Qgis::WkbType::MultiLineStringZM:

View File

@ -1823,6 +1823,15 @@ OGRwkbGeometryType QgsOgrProviderUtils::ogrTypeFromQgisType( Qgis::WkbType type
case Qgis::WkbType::TriangleZM:
return wkbTriangleZM;
case Qgis::WkbType::PolyhedralSurface:
return wkbPolyhedralSurface;
case Qgis::WkbType::PolyhedralSurfaceZ:
return wkbPolyhedralSurfaceZ;
case Qgis::WkbType::PolyhedralSurfaceM:
return wkbPolyhedralSurfaceM;
case Qgis::WkbType::PolyhedralSurfaceZM:
return wkbPolyhedralSurfaceZM;
case Qgis::WkbType::NoGeometry:
return wkbNone;
@ -1944,6 +1953,15 @@ Qgis::WkbType QgsOgrProviderUtils::qgisTypeFromOgrType( OGRwkbGeometryType type
case wkbTriangleZM:
return Qgis::WkbType::TriangleZM;
case wkbPolyhedralSurface:
return Qgis::WkbType::PolyhedralSurface;
case wkbPolyhedralSurfaceZ:
return Qgis::WkbType::PolyhedralSurfaceZ;
case wkbPolyhedralSurfaceM:
return Qgis::WkbType::PolyhedralSurfaceM;
case wkbPolyhedralSurfaceZM:
return Qgis::WkbType::PolyhedralSurfaceZM;
case wkbPoint25D:
return Qgis::WkbType::Point25D;
case wkbLineString25D:
@ -1974,10 +1992,6 @@ Qgis::WkbType QgsOgrProviderUtils::qgisTypeFromOgrType( OGRwkbGeometryType type
case wkbTINZ:
case wkbTINM:
case wkbTINZM:
case wkbPolyhedralSurface:
case wkbPolyhedralSurfaceZ:
case wkbPolyhedralSurfaceM:
case wkbPolyhedralSurfaceZM:
return Qgis::WkbType::Unknown; // unsupported types
}
return Qgis::WkbType::Unknown;

View File

@ -213,6 +213,7 @@ class CORE_EXPORT Qgis
CurvePolygon = 10, //!< CurvePolygon
MultiCurve = 11, //!< MultiCurve
MultiSurface = 12, //!< MultiSurface
PolyhedralSurface = 15, //!< PolyhedralSurface \since QGIS 3.40
NoGeometry = 100, //!< No geometry
PointZ = 1001, //!< PointZ
LineStringZ = 1002, //!< LineStringZ
@ -227,6 +228,7 @@ class CORE_EXPORT Qgis
CurvePolygonZ = 1010, //!< CurvePolygonZ
MultiCurveZ = 1011, //!< MultiCurveZ
MultiSurfaceZ = 1012, //!< MultiSurfaceZ
PolyhedralSurfaceZ = 1015, //!< PolyhedralSurfaceZ
PointM = 2001, //!< PointM
LineStringM = 2002, //!< LineStringM
PolygonM = 2003, //!< PolygonM
@ -240,6 +242,7 @@ class CORE_EXPORT Qgis
CurvePolygonM = 2010, //!< CurvePolygonM
MultiCurveM = 2011, //!< MultiCurveM
MultiSurfaceM = 2012, //!< MultiSurfaceM
PolyhedralSurfaceM = 2015, //!< PolyhedralSurfaceM
PointZM = 3001, //!< PointZM
LineStringZM = 3002, //!< LineStringZM
PolygonZM = 3003, //!< PolygonZM
@ -252,6 +255,7 @@ class CORE_EXPORT Qgis
CurvePolygonZM = 3010, //!< CurvePolygonZM
MultiCurveZM = 3011, //!< MultiCurveZM
MultiSurfaceZM = 3012, //!< MultiSurfaceZM
PolyhedralSurfaceZM = 3015, //!< PolyhedralSurfaceM
TriangleZM = 3017, //!< TriangleZM
Point25D = 0x80000001, //!< Point25D
LineString25D, //!< LineString25D

View File

@ -3567,6 +3567,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.singleType(QgsWkbTypes.Type.MultiPoint25D), QgsWkbTypes.Type.Point25D)
self.assertEqual(QgsWkbTypes.singleType(QgsWkbTypes.Type.MultiLineString25D), QgsWkbTypes.Type.LineString25D)
self.assertEqual(QgsWkbTypes.singleType(QgsWkbTypes.Type.MultiPolygon25D), QgsWkbTypes.Type.Polygon25D)
self.assertEqual(QgsWkbTypes.singleType(QgsWkbTypes.Type.PolyhedralSurface), QgsWkbTypes.Type.PolyhedralSurface)
self.assertEqual(QgsWkbTypes.singleType(QgsWkbTypes.Type.PolyhedralSurfaceZ), QgsWkbTypes.Type.PolyhedralSurfaceZ)
self.assertEqual(QgsWkbTypes.singleType(QgsWkbTypes.Type.PolyhedralSurfaceM), QgsWkbTypes.Type.PolyhedralSurfaceM)
self.assertEqual(QgsWkbTypes.singleType(QgsWkbTypes.Type.PolyhedralSurfaceZM), QgsWkbTypes.Type.PolyhedralSurfaceZM)
# test multiType method
self.assertEqual(QgsWkbTypes.multiType(QgsWkbTypes.Type.Unknown), QgsWkbTypes.Type.Unknown)
@ -3630,6 +3634,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.multiType(QgsWkbTypes.Type.TriangleZ), QgsWkbTypes.Type.MultiPolygonZ)
self.assertEqual(QgsWkbTypes.multiType(QgsWkbTypes.Type.TriangleM), QgsWkbTypes.Type.MultiPolygonM)
self.assertEqual(QgsWkbTypes.multiType(QgsWkbTypes.Type.TriangleZM), QgsWkbTypes.Type.MultiPolygonZM)
self.assertEqual(QgsWkbTypes.multiType(QgsWkbTypes.Type.PolyhedralSurface), QgsWkbTypes.Type.MultiPolygon)
self.assertEqual(QgsWkbTypes.multiType(QgsWkbTypes.Type.PolyhedralSurfaceZ), QgsWkbTypes.Type.MultiPolygonZ)
self.assertEqual(QgsWkbTypes.multiType(QgsWkbTypes.Type.PolyhedralSurfaceM), QgsWkbTypes.Type.MultiPolygonM)
self.assertEqual(QgsWkbTypes.multiType(QgsWkbTypes.Type.PolyhedralSurfaceZM), QgsWkbTypes.Type.MultiPolygonZM)
# test promoteNonPointTypesToMulti method
self.assertEqual(QgsWkbTypes.promoteNonPointTypesToMulti(QgsWkbTypes.Type.Unknown), QgsWkbTypes.Type.Unknown)
@ -3693,6 +3701,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.promoteNonPointTypesToMulti(QgsWkbTypes.Type.TriangleZ), QgsWkbTypes.Type.MultiPolygonZ)
self.assertEqual(QgsWkbTypes.promoteNonPointTypesToMulti(QgsWkbTypes.Type.TriangleM), QgsWkbTypes.Type.MultiPolygonM)
self.assertEqual(QgsWkbTypes.promoteNonPointTypesToMulti(QgsWkbTypes.Type.TriangleZM), QgsWkbTypes.Type.MultiPolygonZM)
self.assertEqual(QgsWkbTypes.promoteNonPointTypesToMulti(QgsWkbTypes.Type.PolyhedralSurface), QgsWkbTypes.Type.MultiPolygon)
self.assertEqual(QgsWkbTypes.promoteNonPointTypesToMulti(QgsWkbTypes.Type.PolyhedralSurfaceZ), QgsWkbTypes.Type.MultiPolygonZ)
self.assertEqual(QgsWkbTypes.promoteNonPointTypesToMulti(QgsWkbTypes.Type.PolyhedralSurfaceM), QgsWkbTypes.Type.MultiPolygonM)
self.assertEqual(QgsWkbTypes.promoteNonPointTypesToMulti(QgsWkbTypes.Type.PolyhedralSurfaceZM), QgsWkbTypes.Type.MultiPolygonZM)
# test curveType method
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.Type.Unknown), QgsWkbTypes.Type.Unknown)
@ -3751,6 +3763,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.Type.MultiPoint25D), QgsWkbTypes.Type.MultiPoint25D)
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.Type.MultiLineString25D), QgsWkbTypes.Type.MultiCurveZ)
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.Type.MultiPolygon25D), QgsWkbTypes.Type.MultiSurfaceZ)
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.Type.PolyhedralSurface), QgsWkbTypes.Type.MultiSurface)
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.Type.PolyhedralSurfaceZ), QgsWkbTypes.Type.MultiSurfaceZ)
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.Type.PolyhedralSurfaceM), QgsWkbTypes.Type.MultiSurfaceM)
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.Type.PolyhedralSurfaceZM), QgsWkbTypes.Type.MultiSurfaceZM)
# test linearType method
self.assertEqual(QgsWkbTypes.linearType(QgsWkbTypes.Type.Unknown), QgsWkbTypes.Type.Unknown)
@ -3867,6 +3883,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.flatType(QgsWkbTypes.Type.MultiPoint25D), QgsWkbTypes.Type.MultiPoint)
self.assertEqual(QgsWkbTypes.flatType(QgsWkbTypes.Type.MultiLineString25D), QgsWkbTypes.Type.MultiLineString)
self.assertEqual(QgsWkbTypes.flatType(QgsWkbTypes.Type.MultiPolygon25D), QgsWkbTypes.Type.MultiPolygon)
self.assertEqual(QgsWkbTypes.flatType(QgsWkbTypes.Type.PolyhedralSurface), QgsWkbTypes.Type.PolyhedralSurface)
self.assertEqual(QgsWkbTypes.flatType(QgsWkbTypes.Type.PolyhedralSurfaceZ), QgsWkbTypes.Type.PolyhedralSurface)
self.assertEqual(QgsWkbTypes.flatType(QgsWkbTypes.Type.PolyhedralSurfaceM), QgsWkbTypes.Type.PolyhedralSurface)
self.assertEqual(QgsWkbTypes.flatType(QgsWkbTypes.Type.PolyhedralSurfaceZM), QgsWkbTypes.Type.PolyhedralSurface)
# test geometryType method
self.assertEqual(QgsWkbTypes.geometryType(QgsWkbTypes.Type.Unknown), QgsWkbTypes.GeometryType.UnknownGeometry)
@ -3925,6 +3945,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.geometryType(QgsWkbTypes.Type.MultiPoint25D), QgsWkbTypes.GeometryType.PointGeometry)
self.assertEqual(QgsWkbTypes.geometryType(QgsWkbTypes.Type.MultiLineString25D), QgsWkbTypes.GeometryType.LineGeometry)
self.assertEqual(QgsWkbTypes.geometryType(QgsWkbTypes.Type.MultiPolygon25D), QgsWkbTypes.GeometryType.PolygonGeometry)
self.assertEqual(QgsWkbTypes.geometryType(QgsWkbTypes.Type.PolyhedralSurface), QgsWkbTypes.GeometryType.PolygonGeometry)
self.assertEqual(QgsWkbTypes.geometryType(QgsWkbTypes.Type.PolyhedralSurfaceZ), QgsWkbTypes.GeometryType.PolygonGeometry)
self.assertEqual(QgsWkbTypes.geometryType(QgsWkbTypes.Type.PolyhedralSurfaceM), QgsWkbTypes.GeometryType.PolygonGeometry)
self.assertEqual(QgsWkbTypes.geometryType(QgsWkbTypes.Type.PolyhedralSurfaceZM), QgsWkbTypes.GeometryType.PolygonGeometry)
# test displayString method
self.assertEqual(QgsWkbTypes.displayString(QgsWkbTypes.Type.Unknown), 'Unknown')
@ -3983,6 +4007,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.displayString(QgsWkbTypes.Type.MultiPoint25D), 'MultiPoint25D')
self.assertEqual(QgsWkbTypes.displayString(QgsWkbTypes.Type.MultiLineString25D), 'MultiLineString25D')
self.assertEqual(QgsWkbTypes.displayString(QgsWkbTypes.Type.MultiPolygon25D), 'MultiPolygon25D')
self.assertEqual(QgsWkbTypes.displayString(QgsWkbTypes.Type.PolyhedralSurface), 'PolyhedralSurface')
self.assertEqual(QgsWkbTypes.displayString(QgsWkbTypes.Type.PolyhedralSurfaceZ), 'PolyhedralSurfaceZ')
self.assertEqual(QgsWkbTypes.displayString(QgsWkbTypes.Type.PolyhedralSurfaceM), 'PolyhedralSurfaceM')
self.assertEqual(QgsWkbTypes.displayString(QgsWkbTypes.Type.PolyhedralSurfaceZM), 'PolyhedralSurfaceZM')
# test parseType method
self.assertEqual(QgsWkbTypes.parseType('point( 1 2 )'), QgsWkbTypes.Type.Point)
@ -3993,6 +4021,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.parseType('POINTZ( 1 2 )'), QgsWkbTypes.Type.PointZ)
self.assertEqual(QgsWkbTypes.parseType('POINT z m'), QgsWkbTypes.Type.PointZM)
self.assertEqual(QgsWkbTypes.parseType('bad'), QgsWkbTypes.Type.Unknown)
self.assertEqual(QgsWkbTypes.parseType('POLYHEDRALSURFACE (((0 0,0 1,1 1,0 0)))'), QgsWkbTypes.Type.PolyhedralSurface)
self.assertEqual(QgsWkbTypes.parseType('POLYHEDRALSURFACE Z (((0 0 0,0 1 0,1 1 0,0 0 0)))'), QgsWkbTypes.Type.PolyhedralSurfaceZ)
self.assertEqual(QgsWkbTypes.parseType('POLYHEDRALSURFACE M (((0 0 3,0 1 3,1 1 3,0 0 3)))'), QgsWkbTypes.Type.PolyhedralSurfaceM)
self.assertEqual(QgsWkbTypes.parseType('POLYHEDRALSURFACE ZM (((0 0 3 4,0 1 3 4,1 1 3 4,0 0 3 4)))'), QgsWkbTypes.Type.PolyhedralSurfaceZM)
# test wkbDimensions method
self.assertEqual(QgsWkbTypes.wkbDimensions(QgsWkbTypes.Type.Unknown), 0)
@ -4051,6 +4083,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.wkbDimensions(QgsWkbTypes.Type.MultiPoint25D), 0)
self.assertEqual(QgsWkbTypes.wkbDimensions(QgsWkbTypes.Type.MultiLineString25D), 1)
self.assertEqual(QgsWkbTypes.wkbDimensions(QgsWkbTypes.Type.MultiPolygon25D), 2)
self.assertEqual(QgsWkbTypes.wkbDimensions(QgsWkbTypes.Type.PolyhedralSurface), 2)
self.assertEqual(QgsWkbTypes.wkbDimensions(QgsWkbTypes.Type.PolyhedralSurfaceZ), 2)
self.assertEqual(QgsWkbTypes.wkbDimensions(QgsWkbTypes.Type.PolyhedralSurfaceM), 2)
self.assertEqual(QgsWkbTypes.wkbDimensions(QgsWkbTypes.Type.PolyhedralSurfaceZM), 2)
# test coordDimensions method
self.assertEqual(QgsWkbTypes.coordDimensions(QgsWkbTypes.Type.Unknown), 0)
@ -4109,12 +4145,17 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.coordDimensions(QgsWkbTypes.Type.MultiPoint25D), 3)
self.assertEqual(QgsWkbTypes.coordDimensions(QgsWkbTypes.Type.MultiLineString25D), 3)
self.assertEqual(QgsWkbTypes.coordDimensions(QgsWkbTypes.Type.MultiPolygon25D), 3)
self.assertEqual(QgsWkbTypes.coordDimensions(QgsWkbTypes.Type.PolyhedralSurface), 2)
self.assertEqual(QgsWkbTypes.coordDimensions(QgsWkbTypes.Type.PolyhedralSurfaceZ), 3)
self.assertEqual(QgsWkbTypes.coordDimensions(QgsWkbTypes.Type.PolyhedralSurfaceM), 3)
self.assertEqual(QgsWkbTypes.coordDimensions(QgsWkbTypes.Type.PolyhedralSurfaceZM), 4)
# test isSingleType methods
assert not QgsWkbTypes.isSingleType(QgsWkbTypes.Type.Unknown)
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.Point)
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.LineString)
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.Polygon)
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.PolyhedralSurface)
assert not QgsWkbTypes.isSingleType(QgsWkbTypes.Type.MultiPoint)
assert not QgsWkbTypes.isSingleType(QgsWkbTypes.Type.MultiLineString)
assert not QgsWkbTypes.isSingleType(QgsWkbTypes.Type.MultiPolygon)
@ -4128,6 +4169,7 @@ class TestQgsGeometry(QgisTestCase):
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.PointZ)
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.LineStringZ)
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.PolygonZ)
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.PolyhedralSurfaceZ)
assert not QgsWkbTypes.isSingleType(QgsWkbTypes.Type.MultiPointZ)
assert not QgsWkbTypes.isSingleType(QgsWkbTypes.Type.MultiLineStringZ)
assert not QgsWkbTypes.isSingleType(QgsWkbTypes.Type.MultiPolygonZ)
@ -4140,6 +4182,7 @@ class TestQgsGeometry(QgisTestCase):
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.PointM)
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.LineStringM)
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.PolygonM)
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.PolyhedralSurfaceM)
assert not QgsWkbTypes.isSingleType(QgsWkbTypes.Type.MultiPointM)
assert not QgsWkbTypes.isSingleType(QgsWkbTypes.Type.MultiLineStringM)
assert not QgsWkbTypes.isSingleType(QgsWkbTypes.Type.MultiPolygonM)
@ -4152,6 +4195,7 @@ class TestQgsGeometry(QgisTestCase):
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.PointZM)
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.LineStringZM)
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.PolygonZM)
assert QgsWkbTypes.isSingleType(QgsWkbTypes.Type.PolyhedralSurfaceZM)
assert not QgsWkbTypes.isSingleType(QgsWkbTypes.Type.MultiPointZM)
assert not QgsWkbTypes.isSingleType(QgsWkbTypes.Type.MultiLineStringZM)
assert not QgsWkbTypes.isSingleType(QgsWkbTypes.Type.MultiPolygonZM)
@ -4173,6 +4217,7 @@ class TestQgsGeometry(QgisTestCase):
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.Point)
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.LineString)
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.Polygon)
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.PolyhedralSurface)
assert QgsWkbTypes.isMultiType(QgsWkbTypes.Type.MultiPoint)
assert QgsWkbTypes.isMultiType(QgsWkbTypes.Type.MultiLineString)
assert QgsWkbTypes.isMultiType(QgsWkbTypes.Type.MultiPolygon)
@ -4186,6 +4231,7 @@ class TestQgsGeometry(QgisTestCase):
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.PointZ)
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.LineStringZ)
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.PolygonZ)
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.PolyhedralSurfaceZ)
assert QgsWkbTypes.isMultiType(QgsWkbTypes.Type.MultiPointZ)
assert QgsWkbTypes.isMultiType(QgsWkbTypes.Type.MultiLineStringZ)
assert QgsWkbTypes.isMultiType(QgsWkbTypes.Type.MultiPolygonZ)
@ -4198,6 +4244,7 @@ class TestQgsGeometry(QgisTestCase):
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.PointM)
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.LineStringM)
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.PolygonM)
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.PolyhedralSurfaceM)
assert QgsWkbTypes.isMultiType(QgsWkbTypes.Type.MultiPointM)
assert QgsWkbTypes.isMultiType(QgsWkbTypes.Type.MultiLineStringM)
assert QgsWkbTypes.isMultiType(QgsWkbTypes.Type.MultiPolygonM)
@ -4210,6 +4257,7 @@ class TestQgsGeometry(QgisTestCase):
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.PointZM)
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.LineStringZM)
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.PolygonZM)
assert not QgsWkbTypes.isMultiType(QgsWkbTypes.Type.PolyhedralSurfaceZM)
assert QgsWkbTypes.isMultiType(QgsWkbTypes.Type.MultiPointZM)
assert QgsWkbTypes.isMultiType(QgsWkbTypes.Type.MultiLineStringZM)
assert QgsWkbTypes.isMultiType(QgsWkbTypes.Type.MultiPolygonZM)
@ -4231,6 +4279,7 @@ class TestQgsGeometry(QgisTestCase):
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.Point)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.LineString)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.Polygon)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.PolyhedralSurface)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.MultiPoint)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.MultiLineString)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.MultiPolygon)
@ -4244,6 +4293,7 @@ class TestQgsGeometry(QgisTestCase):
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.PointZ)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.LineStringZ)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.PolygonZ)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.PolyhedralSurfaceZ)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.MultiPointZ)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.MultiLineStringZ)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.MultiPolygonZ)
@ -4256,6 +4306,7 @@ class TestQgsGeometry(QgisTestCase):
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.PointM)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.LineStringM)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.PolygonM)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.PolyhedralSurfaceM)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.MultiPointM)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.MultiLineStringM)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.MultiPolygonM)
@ -4271,6 +4322,7 @@ class TestQgsGeometry(QgisTestCase):
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.MultiPointZM)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.MultiLineStringZM)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.MultiPolygonZM)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.PolyhedralSurfaceZM)
assert not QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.GeometryCollectionZM)
assert QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.CircularStringZM)
assert QgsWkbTypes.isCurvedType(QgsWkbTypes.Type.CompoundCurveZM)
@ -4289,6 +4341,7 @@ class TestQgsGeometry(QgisTestCase):
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.Point)
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.LineString)
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.Polygon)
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.PolyhedralSurface)
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.MultiPoint)
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.MultiLineString)
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.MultiPolygon)
@ -4302,6 +4355,7 @@ class TestQgsGeometry(QgisTestCase):
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.PointZ)
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.LineStringZ)
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.PolygonZ)
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.PolyhedralSurfaceZ)
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.MultiPointZ)
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.MultiLineStringZ)
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.MultiPolygonZ)
@ -4314,6 +4368,7 @@ class TestQgsGeometry(QgisTestCase):
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.PointM)
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.LineStringM)
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.PolygonM)
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.PolyhedralSurfaceM)
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.MultiPointM)
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.MultiLineStringM)
assert not QgsWkbTypes.hasZ(QgsWkbTypes.Type.MultiPolygonM)
@ -4326,6 +4381,7 @@ class TestQgsGeometry(QgisTestCase):
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.PointZM)
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.LineStringZM)
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.PolygonZM)
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.PolyhedralSurfaceZM)
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.MultiPointZM)
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.MultiLineStringZM)
assert QgsWkbTypes.hasZ(QgsWkbTypes.Type.MultiPolygonZM)
@ -4347,6 +4403,7 @@ class TestQgsGeometry(QgisTestCase):
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.Point)
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.LineString)
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.Polygon)
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.PolyhedralSurface)
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.MultiPoint)
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.MultiLineString)
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.MultiPolygon)
@ -4360,6 +4417,7 @@ class TestQgsGeometry(QgisTestCase):
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.PointZ)
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.LineStringZ)
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.PolygonZ)
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.PolyhedralSurfaceZ)
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.MultiPointZ)
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.MultiLineStringZ)
assert not QgsWkbTypes.hasM(QgsWkbTypes.Type.MultiPolygonZ)
@ -4372,6 +4430,7 @@ class TestQgsGeometry(QgisTestCase):
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.PointM)
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.LineStringM)
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.PolygonM)
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.PolyhedralSurfaceM)
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.MultiPointM)
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.MultiLineStringM)
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.MultiPolygonM)
@ -4384,6 +4443,7 @@ class TestQgsGeometry(QgisTestCase):
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.PointZM)
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.LineStringZM)
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.PolygonZM)
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.PolyhedralSurfaceZM)
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.MultiPointZM)
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.MultiLineStringZM)
assert QgsWkbTypes.hasM(QgsWkbTypes.Type.MultiPolygonZM)
@ -4457,6 +4517,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.addZ(QgsWkbTypes.Type.MultiPoint25D), QgsWkbTypes.Type.MultiPoint25D)
self.assertEqual(QgsWkbTypes.addZ(QgsWkbTypes.Type.MultiLineString25D), QgsWkbTypes.Type.MultiLineString25D)
self.assertEqual(QgsWkbTypes.addZ(QgsWkbTypes.Type.MultiPolygon25D), QgsWkbTypes.Type.MultiPolygon25D)
self.assertEqual(QgsWkbTypes.addZ(QgsWkbTypes.Type.PolyhedralSurface), QgsWkbTypes.Type.PolyhedralSurfaceZ)
self.assertEqual(QgsWkbTypes.addZ(QgsWkbTypes.Type.PolyhedralSurfaceZ), QgsWkbTypes.Type.PolyhedralSurfaceZ)
self.assertEqual(QgsWkbTypes.addZ(QgsWkbTypes.Type.PolyhedralSurfaceM), QgsWkbTypes.Type.PolyhedralSurfaceZM)
self.assertEqual(QgsWkbTypes.addZ(QgsWkbTypes.Type.PolyhedralSurfaceZM), QgsWkbTypes.Type.PolyhedralSurfaceZM)
# test to25D
self.assertEqual(QgsWkbTypes.to25D(QgsWkbTypes.Type.Unknown), QgsWkbTypes.Type.Unknown)
@ -4515,6 +4579,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.to25D(QgsWkbTypes.Type.MultiPoint25D), QgsWkbTypes.Type.MultiPoint25D)
self.assertEqual(QgsWkbTypes.to25D(QgsWkbTypes.Type.MultiLineString25D), QgsWkbTypes.Type.MultiLineString25D)
self.assertEqual(QgsWkbTypes.to25D(QgsWkbTypes.Type.MultiPolygon25D), QgsWkbTypes.Type.MultiPolygon25D)
self.assertEqual(QgsWkbTypes.to25D(QgsWkbTypes.Type.PolyhedralSurface), QgsWkbTypes.Type.Unknown)
self.assertEqual(QgsWkbTypes.to25D(QgsWkbTypes.Type.PolyhedralSurfaceZ), QgsWkbTypes.Type.Unknown)
self.assertEqual(QgsWkbTypes.to25D(QgsWkbTypes.Type.PolyhedralSurfaceM), QgsWkbTypes.Type.Unknown)
self.assertEqual(QgsWkbTypes.to25D(QgsWkbTypes.Type.PolyhedralSurfaceZM), QgsWkbTypes.Type.Unknown)
# test adding m dimension to types
self.assertEqual(QgsWkbTypes.addM(QgsWkbTypes.Type.Unknown), QgsWkbTypes.Type.Unknown)
@ -4574,6 +4642,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.addM(QgsWkbTypes.Type.MultiPoint25D), QgsWkbTypes.Type.MultiPointZM)
self.assertEqual(QgsWkbTypes.addM(QgsWkbTypes.Type.MultiLineString25D), QgsWkbTypes.Type.MultiLineStringZM)
self.assertEqual(QgsWkbTypes.addM(QgsWkbTypes.Type.MultiPolygon25D), QgsWkbTypes.Type.MultiPolygonZM)
self.assertEqual(QgsWkbTypes.addM(QgsWkbTypes.Type.PolyhedralSurface), QgsWkbTypes.Type.PolyhedralSurfaceM)
self.assertEqual(QgsWkbTypes.addM(QgsWkbTypes.Type.PolyhedralSurfaceZ), QgsWkbTypes.Type.PolyhedralSurfaceZM)
self.assertEqual(QgsWkbTypes.addM(QgsWkbTypes.Type.PolyhedralSurfaceM), QgsWkbTypes.Type.PolyhedralSurfaceM)
self.assertEqual(QgsWkbTypes.addM(QgsWkbTypes.Type.PolyhedralSurfaceZM), QgsWkbTypes.Type.PolyhedralSurfaceZM)
# test dropping z dimension from types
self.assertEqual(QgsWkbTypes.dropZ(QgsWkbTypes.Type.Unknown), QgsWkbTypes.Type.Unknown)
@ -4632,6 +4704,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.dropZ(QgsWkbTypes.Type.MultiPoint25D), QgsWkbTypes.Type.MultiPoint)
self.assertEqual(QgsWkbTypes.dropZ(QgsWkbTypes.Type.MultiLineString25D), QgsWkbTypes.Type.MultiLineString)
self.assertEqual(QgsWkbTypes.dropZ(QgsWkbTypes.Type.MultiPolygon25D), QgsWkbTypes.Type.MultiPolygon)
self.assertEqual(QgsWkbTypes.dropZ(QgsWkbTypes.Type.PolyhedralSurface), QgsWkbTypes.Type.PolyhedralSurface)
self.assertEqual(QgsWkbTypes.dropZ(QgsWkbTypes.Type.PolyhedralSurfaceZ), QgsWkbTypes.Type.PolyhedralSurface)
self.assertEqual(QgsWkbTypes.dropZ(QgsWkbTypes.Type.PolyhedralSurfaceM), QgsWkbTypes.Type.PolyhedralSurfaceM)
self.assertEqual(QgsWkbTypes.dropZ(QgsWkbTypes.Type.PolyhedralSurfaceZM), QgsWkbTypes.Type.PolyhedralSurfaceM)
# test dropping m dimension from types
self.assertEqual(QgsWkbTypes.dropM(QgsWkbTypes.Type.Unknown), QgsWkbTypes.Type.Unknown)
@ -4690,6 +4766,10 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.dropM(QgsWkbTypes.Type.MultiPoint25D), QgsWkbTypes.Type.MultiPoint25D)
self.assertEqual(QgsWkbTypes.dropM(QgsWkbTypes.Type.MultiLineString25D), QgsWkbTypes.Type.MultiLineString25D)
self.assertEqual(QgsWkbTypes.dropM(QgsWkbTypes.Type.MultiPolygon25D), QgsWkbTypes.Type.MultiPolygon25D)
self.assertEqual(QgsWkbTypes.dropM(QgsWkbTypes.Type.PolyhedralSurface), QgsWkbTypes.Type.PolyhedralSurface)
self.assertEqual(QgsWkbTypes.dropM(QgsWkbTypes.Type.PolyhedralSurfaceZ), QgsWkbTypes.Type.PolyhedralSurfaceZ)
self.assertEqual(QgsWkbTypes.dropM(QgsWkbTypes.Type.PolyhedralSurfaceM), QgsWkbTypes.Type.PolyhedralSurface)
self.assertEqual(QgsWkbTypes.dropM(QgsWkbTypes.Type.PolyhedralSurfaceZM), QgsWkbTypes.Type.PolyhedralSurfaceZ)
# Test QgsWkbTypes.zmType
self.assertEqual(QgsWkbTypes.zmType(QgsWkbTypes.Type.Point, False, False), QgsWkbTypes.Type.Point)
@ -4948,6 +5028,11 @@ class TestQgsGeometry(QgisTestCase):
self.assertEqual(QgsWkbTypes.zmType(QgsWkbTypes.Type.MultiSurfaceZM, False, True), QgsWkbTypes.Type.MultiSurfaceM)
self.assertEqual(QgsWkbTypes.zmType(QgsWkbTypes.Type.MultiSurfaceZM, True, True), QgsWkbTypes.Type.MultiSurfaceZM)
self.assertEqual(QgsWkbTypes.zmType(QgsWkbTypes.Type.PolyhedralSurface, False, False), QgsWkbTypes.Type.PolyhedralSurface)
self.assertEqual(QgsWkbTypes.zmType(QgsWkbTypes.Type.PolyhedralSurface, True, False), QgsWkbTypes.Type.PolyhedralSurfaceZ)
self.assertEqual(QgsWkbTypes.zmType(QgsWkbTypes.Type.PolyhedralSurface, False, True), QgsWkbTypes.Type.PolyhedralSurfaceM)
self.assertEqual(QgsWkbTypes.zmType(QgsWkbTypes.Type.PolyhedralSurface, True, True), QgsWkbTypes.Type.PolyhedralSurfaceZM)
def testGeometryDisplayString(self):
self.assertEqual(QgsWkbTypes.geometryDisplayString(QgsWkbTypes.GeometryType.PointGeometry), 'Point')
self.assertEqual(QgsWkbTypes.geometryDisplayString(QgsWkbTypes.GeometryType.LineGeometry), 'Line')