mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-15 00:07:25 -05:00
Add QgsWkbTypes::curveType method
This commit is contained in:
parent
37b7b84d8b
commit
60f4bc56e8
@ -120,6 +120,18 @@ Returns the multi type for a WKB type. For example, for Polygon WKB types the mu
|
||||
|
||||
.. seealso:: :py:func:`singleType`
|
||||
|
||||
.. seealso:: :py:func:`flatType`
|
||||
%End
|
||||
|
||||
|
||||
static Type curveType( Type type );
|
||||
%Docstring
|
||||
Returns the curve type for a WKB type. For example, for Polygon WKB types the multi type would be CurvePolygon.
|
||||
|
||||
.. seealso:: :py:func:`isMultiType`
|
||||
|
||||
.. seealso:: :py:func:`singleType`
|
||||
|
||||
.. seealso:: :py:func:`flatType`
|
||||
%End
|
||||
|
||||
|
||||
@ -421,6 +421,146 @@ class CORE_EXPORT QgsWkbTypes
|
||||
return Unknown;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the curve type for a WKB type. For example, for Polygon WKB types the multi type would be CurvePolygon.
|
||||
* \see isMultiType()
|
||||
* \see singleType()
|
||||
* \see flatType()
|
||||
*/
|
||||
static Type curveType( Type type )
|
||||
{
|
||||
switch ( type )
|
||||
{
|
||||
case Unknown:
|
||||
case Triangle:
|
||||
case TriangleZ:
|
||||
case TriangleM:
|
||||
case TriangleZM:
|
||||
return Unknown;
|
||||
|
||||
case GeometryCollection:
|
||||
return GeometryCollection;
|
||||
|
||||
case GeometryCollectionZ:
|
||||
return GeometryCollectionZ;
|
||||
|
||||
case GeometryCollectionM:
|
||||
return GeometryCollectionM;
|
||||
|
||||
case GeometryCollectionZM:
|
||||
return GeometryCollectionZM;
|
||||
|
||||
case Point:
|
||||
return Point;
|
||||
|
||||
case MultiPoint:
|
||||
return MultiPoint;
|
||||
|
||||
case PointZ:
|
||||
return PointZ;
|
||||
|
||||
case MultiPointZ:
|
||||
return MultiPointZ;
|
||||
|
||||
case PointM:
|
||||
return PointM;
|
||||
|
||||
case MultiPointM:
|
||||
return MultiPointM;
|
||||
|
||||
case PointZM:
|
||||
return PointZM;
|
||||
|
||||
case MultiPointZM:
|
||||
return MultiPointZM;
|
||||
|
||||
case LineString:
|
||||
case CompoundCurve:
|
||||
case CircularString:
|
||||
return CompoundCurve;
|
||||
|
||||
case MultiLineString:
|
||||
case MultiCurve:
|
||||
return MultiCurve;
|
||||
|
||||
case LineStringZ:
|
||||
case CompoundCurveZ:
|
||||
case CircularStringZ:
|
||||
return CompoundCurveZ;
|
||||
|
||||
case MultiLineStringZ:
|
||||
case MultiCurveZ:
|
||||
return MultiCurveZ;
|
||||
|
||||
case LineStringM:
|
||||
case CompoundCurveM:
|
||||
case CircularStringM:
|
||||
return CompoundCurveM;
|
||||
|
||||
case MultiLineStringM:
|
||||
case MultiCurveM:
|
||||
return MultiCurveM;
|
||||
|
||||
case LineStringZM:
|
||||
case CompoundCurveZM:
|
||||
case CircularStringZM:
|
||||
return CompoundCurveZM;
|
||||
|
||||
case MultiLineStringZM:
|
||||
case MultiCurveZM:
|
||||
return MultiCurveZM;
|
||||
|
||||
case Polygon:
|
||||
case CurvePolygon:
|
||||
return CurvePolygon;
|
||||
|
||||
case MultiPolygon:
|
||||
case MultiSurface:
|
||||
return MultiSurface;
|
||||
|
||||
case PolygonZ:
|
||||
case CurvePolygonZ:
|
||||
return CurvePolygonZ;
|
||||
|
||||
case MultiPolygonZ:
|
||||
case MultiSurfaceZ:
|
||||
return MultiSurfaceZ;
|
||||
|
||||
case PolygonM:
|
||||
case CurvePolygonM:
|
||||
return CurvePolygonM;
|
||||
|
||||
case MultiPolygonM:
|
||||
case MultiSurfaceM:
|
||||
return MultiSurfaceM;
|
||||
|
||||
case PolygonZM:
|
||||
case CurvePolygonZM:
|
||||
return CurvePolygonZM;
|
||||
|
||||
case MultiPolygonZM:
|
||||
case MultiSurfaceZM:
|
||||
return MultiSurfaceZM;
|
||||
|
||||
case NoGeometry:
|
||||
return NoGeometry;
|
||||
|
||||
case Point25D:
|
||||
case MultiPoint25D:
|
||||
return MultiPoint25D;
|
||||
|
||||
case LineString25D:
|
||||
case MultiLineString25D:
|
||||
return MultiLineString25D;
|
||||
|
||||
case Polygon25D:
|
||||
case MultiPolygon25D:
|
||||
return MultiPolygon25D;
|
||||
}
|
||||
return Unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the flat type for a WKB type. This is the WKB type minus any Z or M dimensions.
|
||||
* For example, for PolygonZM WKB types the single type would be Polygon.
|
||||
|
||||
@ -2748,6 +2748,64 @@ class TestQgsGeometry(unittest.TestCase):
|
||||
self.assertEqual(QgsWkbTypes.multiType(QgsWkbTypes.MultiLineString25D), QgsWkbTypes.MultiLineString25D)
|
||||
self.assertEqual(QgsWkbTypes.multiType(QgsWkbTypes.MultiPolygon25D), QgsWkbTypes.MultiPolygon25D)
|
||||
|
||||
# test curveType method
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.Unknown), QgsWkbTypes.Unknown)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.Point), QgsWkbTypes.Point)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.PointZ), QgsWkbTypes.PointZ)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.PointM), QgsWkbTypes.PointM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.PointZM), QgsWkbTypes.PointZM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiPoint), QgsWkbTypes.MultiPoint)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiPointZ), QgsWkbTypes.MultiPointZ)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiPointM), QgsWkbTypes.MultiPointM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiPointZM), QgsWkbTypes.MultiPointZM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.LineString), QgsWkbTypes.CompoundCurve)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.LineStringZ), QgsWkbTypes.CompoundCurveZ)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.LineStringM), QgsWkbTypes.CompoundCurveM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.LineStringZM), QgsWkbTypes.CompoundCurveZM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiLineString), QgsWkbTypes.MultiCurve)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiLineStringZ), QgsWkbTypes.MultiCurveZ)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiLineStringM), QgsWkbTypes.MultiCurveM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiLineStringZM), QgsWkbTypes.MultiCurveZM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.Polygon), QgsWkbTypes.CurvePolygon)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.PolygonZ), QgsWkbTypes.CurvePolygonZ)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.PolygonM), QgsWkbTypes.CurvePolygonM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.PolygonZM), QgsWkbTypes.CurvePolygonZM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiPolygon), QgsWkbTypes.MultiSurface)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiPolygonZ), QgsWkbTypes.MultiSurfaceZ)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiPolygonM), QgsWkbTypes.MultiSurfaceM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiPolygonZM), QgsWkbTypes.MultiSurfaceZM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.GeometryCollection), QgsWkbTypes.GeometryCollection)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.GeometryCollectionZ), QgsWkbTypes.GeometryCollectionZ)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.GeometryCollectionM), QgsWkbTypes.GeometryCollectionM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.GeometryCollectionZM), QgsWkbTypes.GeometryCollectionZM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.CircularString), QgsWkbTypes.CompoundCurve)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.CircularStringZ), QgsWkbTypes.CompoundCurveZ)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.CircularStringM), QgsWkbTypes.CompoundCurveM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.CircularStringZM), QgsWkbTypes.CompoundCurveZM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.CompoundCurve), QgsWkbTypes.CompoundCurve)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.CompoundCurveZ), QgsWkbTypes.CompoundCurveZ)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.CompoundCurveM), QgsWkbTypes.CompoundCurveM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.CompoundCurveZM), QgsWkbTypes.CompoundCurveZM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.CurvePolygon), QgsWkbTypes.CurvePolygon)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.CurvePolygonZ), QgsWkbTypes.CurvePolygonZ)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.CurvePolygonM), QgsWkbTypes.CurvePolygonM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.CurvePolygonZM), QgsWkbTypes.CurvePolygonZM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiCurve), QgsWkbTypes.MultiCurve)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiCurveZ), QgsWkbTypes.MultiCurveZ)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiCurveM), QgsWkbTypes.MultiCurveM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiCurveZM), QgsWkbTypes.MultiCurveZM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiSurface), QgsWkbTypes.MultiSurface)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiSurfaceZ), QgsWkbTypes.MultiSurfaceZ)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiSurfaceM), QgsWkbTypes.MultiSurfaceM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiSurfaceZM), QgsWkbTypes.MultiSurfaceZM)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.NoGeometry), QgsWkbTypes.NoGeometry)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.Point25D), QgsWkbTypes.MultiPoint25D)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.LineString25D), QgsWkbTypes.MultiLineString25D)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.Polygon25D), QgsWkbTypes.MultiPolygon25D)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiPoint25D), QgsWkbTypes.MultiPoint25D)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiLineString25D), QgsWkbTypes.MultiLineString25D)
|
||||
self.assertEqual(QgsWkbTypes.curveType(QgsWkbTypes.MultiPolygon25D), QgsWkbTypes.MultiPolygon25D)
|
||||
|
||||
# test flatType method
|
||||
self.assertEqual(QgsWkbTypes.flatType(QgsWkbTypes.Unknown), QgsWkbTypes.Unknown)
|
||||
self.assertEqual(QgsWkbTypes.flatType(QgsWkbTypes.Point), QgsWkbTypes.Point)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user