POSTGIS_TYPE_NAME
📄字数 3.1K
👁️阅读量 加载中...
功能描述
由几何类型名称和维度,返回几何类型名称。
语法格式
sql
VARCHAR POSTGIS_TYPE_NAME(VARCHAR geom_name,INTEGER coord_dimension,BOOLEAN use_new_name = true);参数说明
- geom_name: 几何类型名称。
- coord_dimension:坐标维度。
- use_new_name:是否新版本几何名称,默认:true。
函数返回类型
VARCHAR 类型
几何类型名称映射表
| 旧版名称 | 新版名称 | 坐标维度 |
|---|---|---|
| GEOMETRY | Geometry | 2 |
| GEOMETRY | GeometryZ | 3 |
| GEOMETRYM | GeometryM | 3 |
| GEOMETRY | GeometryZM | 4 |
| GEOMETRYCOLLECTION | GeometryCollection | 2 |
| GEOMETRYCOLLECTION | GeometryCollectionZ | 3 |
| GEOMETRYCOLLECTIONM | GeometryCollectionM | 3 |
| GEOMETRYCOLLECTION | GeometryCollectionZM | 4 |
| POINT | Point | 2 |
| POINT | PointZ | 3 |
| POINTM | PointM | 3 |
| POINT | PointZM | 4 |
| MULTIPOINT | MultiPoint | 2 |
| MULTIPOINT | MultiPointZ | 3 |
| MULTIPOINTM | MultiPointM | 3 |
| MULTIPOINT | MultiPointZM | 4 |
| POLYGON | Polygon | 2 |
| POLYGON | PolygonZ | 3 |
| POLYGONM | PolygonM | 3 |
| POLYGON | PolygonZM | 4 |
| MULTIPOLYGON | MultiPolygon | 2 |
| MULTIPOLYGON | MultiPolygonZ | 3 |
| MULTIPOLYGONM | MultiPolygonM | 3 |
| MULTIPOLYGON | MultiPolygonZM | 4 |
| MULTILINESTRING | MultiLineString | 2 |
| MULTILINESTRING | MultiLineStringZ | 3 |
| MULTILINESTRINGM | MultiLineStringM | 3 |
| MULTILINESTRING | MultiLineStringZM | 4 |
| LINESTRING | LineString | 2 |
| LINESTRING | LineStringZ | 3 |
| LINESTRINGM | LineStringM | 3 |
| LINESTRING | LineStringZM | 4 |
| CIRCULARSTRING | CircularString | 2 |
| CIRCULARSTRING | CircularStringZ | 3 |
| CIRCULARSTRINGM | CircularStringM | 3 |
| CIRCULARSTRING | CircularStringZM | 4 |
| COMPOUNDCURVE | CompoundCurve | 2 |
| COMPOUNDCURVE | CompoundCurveZ | 3 |
| COMPOUNDCURVEM | CompoundCurveM | 3 |
| COMPOUNDCURVE | CompoundCurveZM | 4 |
| CURVEPOLYGON | CurvePolygon | 2 |
| CURVEPOLYGON | CurvePolygonZ | 3 |
| CURVEPOLYGONM | CurvePolygonM | 3 |
| CURVEPOLYGON | CurvePolygonZM | 4 |
| MULTICURVE | MultiCurve | 2 |
| MULTICURVE | MultiCurveZ | 3 |
| MULTICURVEM | MultiCurveM | 3 |
| MULTICURVE | MultiCurveZM | 4 |
| MULTISURFACE | MultiSurface | 2 |
| MULTISURFACE | MultiSurfaceZ | 3 |
| MULTISURFACEM | MultiSurfaceM | 3 |
| MULTISURFACE | MultiSurfaceZM | 4 |
| POLYHEDRALSURFACE | PolyhedralSurface | 2 |
| POLYHEDRALSURFACE | PolyhedralSurfaceZ | 3 |
| POLYHEDRALSURFACEM | PolyhedralSurfaceM | 3 |
| POLYHEDRALSURFACE | PolyhedralSurfaceZM | 4 |
| TRIANGLE | Triangle | 2 |
| TRIANGLE | TriangleZ | 3 |
| TRIANGLEM | TriangleM | 3 |
| TRIANGLE | TriangleZM | 4 |
| TIN | Tin | 2 |
| TIN | TinZ | 3 |
| TINM | TinM | 3 |
| TIN | TinZM | 4 |
使用说明
- 几何类型和坐标维度不匹配时,返回 NULL。
- 新旧版本对 M/Z/ZM 修饰符限定不同。
示例
几何类型名称:
sql
SQL> select
postgis_type_name('GEOMETRY',5) as dim5,
postgis_type_name('GEOMETRY',4) as dim4,
postgis_type_name('GEOMETRY',3) as dim3,
postgis_type_name('GEOMETRY',2) as dim2,
postgis_type_name('GEOMETRY',1) as dim1,
postgis_type_name('GEOMETRY',5,false) as dim5_old,
postgis_type_name('GEOMETRY',4,false) as dim4_old,
postgis_type_name('GEOMETRY',3,false) as dim3_old,
postgis_type_name('GEOMETRY',2,false) as dim2_old,
postgis_type_name('GEOMETRY',1,false) as dim1_old;
+--------+------------+-----------+----------+--------+----------+----------+----------+----------+----------+
| DIM5 | DIM4 | DIM3 | DIM2 | DIM1 | DIM5_OLD | DIM4_OLD | DIM3_OLD | DIM2_OLD | DIM1_OLD |
+--------+------------+-----------+----------+--------+----------+----------+----------+----------+----------+
| <NULL> | GeometryZM | GeometryZ | Geometry | <NULL> | <NULL> | GEOMETRY | GEOMETRY | GEOMETRY | <NULL> |
+--------+------------+-----------+----------+--------+----------+----------+----------+----------+----------+线串的类型名称:
sql
SQL> select
postgis_type_name('LINESTRING',5) as dim5,
postgis_type_name('LINESTRING',4) as dim4,
postgis_type_name('LINESTRING',3) as dim3,
postgis_type_name('LINESTRING',2) as dim2,
postgis_type_name('LINESTRING',1) as dim1,
postgis_type_name('LINESTRING',5,false) as dim5_old,
postgis_type_name('LINESTRING',4,false) as dim4_old,
postgis_type_name('LINESTRING',3,false) as dim3_old,
postgis_type_name('LINESTRING',2,false) as dim2_old,
postgis_type_name('LINESTRING',1,false) as dim1_old;
+--------+--------------+-------------+------------+--------+----------+------------+------------+------------+----------+
| DIM5 | DIM4 | DIM3 | DIM2 | DIM1 | DIM5_OLD | DIM4_OLD | DIM3_OLD | DIM2_OLD | DIM1_OLD |
+--------+--------------+-------------+------------+--------+----------+------------+------------+------------+----------+
| <NULL> | LineStringZM | LineStringZ | LineString | <NULL> | <NULL> | LINESTRING | LINESTRING | LINESTRING | <NULL> |
+--------+--------------+-------------+------------+--------+----------+------------+------------+------------+----------+
SQL> select
postgis_type_name('LINESTRINGM',2) as LINESTRINGM,
postgis_type_name('LINESTRINGM',3) as LINESTRINGM3,
postgis_type_name('LINESTRINGZ',3) as LINESTRINGZ3,
postgis_type_name('LINESTRINGZM',3) as LINESTRINGZM3,
postgis_type_name('LINESTRINGZM',4) as LINESTRINGZM4;
+-------------+--------------+--------------+---------------+---------------+
| LINESTRINGM | LINESTRINGM3 | LINESTRINGZ3 | LINESTRINGZM3 | LINESTRINGZM4 |
+-------------+--------------+--------------+---------------+---------------+
| <NULL> | LineStringM | LineStringZ | <NULL> | LineStringZM |
+-------------+--------------+--------------+---------------+---------------+