Definition
ST_GeometryType takes a geometry object and returns its geometry type (for example, point, line, polygon, multipoint) as a string.
Syntax
Oracle and PostgreSQL
sde.st_geometrytype (g1 sde.st_geometry)
SQLite
st_geometrytype (g1 geometryblob)
Return type
Varchar(32) (Oracle and PostgreSQL) or text (SQLite) containing one of the following:
- ST_Point
- ST_LineString
- ST_Polygon
- ST_MultiPoint
- ST_MultiLineString
- ST_MultiPolygon
Example
The geometrytype_test table contains the g1 geometry column.
The INSERT statements insert each geometry subclass into the g1 column.
The SELECT query lists the geometry type of each subclass stored in the g1 geometry column.
Oracle
CREATE TABLE geometrytype_test (g1 sde.st_geometry);
INSERT INTO geometrytype_test VALUES (
sde.st_geometry ('point (10.02 20.01)', 4326)
);
INSERT INTO geometrytype_test VALUES (
sde.st_geometry ('linestring (10.01 20.01, 10.01 30.01, 10.01 40.01)', 4326)
);
INSERT INTO geometrytype_test VALUES (
sde.st_geometry ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01))', 4326)
);
INSERT INTO geometrytype_test VALUES (
sde.st_geometry ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO geometrytype_test VALUES (
sde.st_geometry ('multilinestring ((10.02 20.01, 10.32 23.98,
11.92 25.64), (9.55 23.75, 15.36 30.11))', 4326)
);
INSERT INTO geometrytype_test VALUES (
sde.st_geometry ('multipolygon (((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01)), ((51.71 21.73, 73.36 27.04, 71.52 32.87,
52.43 31.90,51.71 21.73)))', 4326)
);
SELECT UPPER (sde.st_geometrytype (g1)) Geometry_type
FROM GEOMETRYTYPE_TEST;
Geometry_type
ST_POINT
ST_LINESTRING
ST_POLYGON
ST_MULTIPOINT
ST_MULTILINESTRING
ST_MULTIPOLYGON
PostgreSQL
CREATE TABLE geometrytype_test (g1 sde.st_geometry);
INSERT INTO geometrytype_test VALUES (
sde.st_geometry ('point (10.02 20.01)', 4326)
);
INSERT INTO geometrytype_test VALUES (
sde.st_geometry ('linestring (10.01 20.01, 10.01 30.01, 10.01 40.01)', 4326)
);
INSERT INTO geometrytype_test VALUES (
sde.st_geometry ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01))', 4326)
);
INSERT INTO geometrytype_test VALUES (
sde.st_geometry ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO geometrytype_test VALUES (
sde.st_geometry ('multilinestring ((10.02 20.01, 10.32 23.98,
11.92 25.64), (9.55 23.75, 15.36 30.11))', 4326)
);
INSERT INTO geometrytype_test VALUES (
sde.st_geometry ('multipolygon (((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01)), ((51.71 21.73, 73.36 27.04, 71.52 32.87,
52.43 31.90,51.71 21.73)))', 4326)
);
SELECT (sde.st_geometrytype (g1))
AS Geometry_type
FROM geometrytype_test;
Geometry_type
ST_POINT
ST_LINESTRING
ST_POLYGON
ST_MULTIPOINT
ST_MULTILINESTRING
ST_MULTIPOLYGON
SQLite
CREATE TABLE geometrytype_test (id integer primary key autoincrement not null);
SELECT AddGeometryColumn (
NULL,
'geometrytype_test',
'g1',
4326,
'geometry',
'xy',
'null'
);
INSERT INTO geometrytype_test (g1) VALUES (
st_geometry ('point (10.02 20.01)', 4326)
);
INSERT INTO geometrytype_test (g1) VALUES (
st_geometry ('linestring (10.01 20.01, 10.01 30.01, 10.01 40.01)', 4326)
);
INSERT INTO geometrytype_test (g1) VALUES (
st_geometry ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01))', 4326)
);
INSERT INTO geometrytype_test (g1) VALUES (
st_geometry ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO geometrytype_test (g1) VALUES (
st_geometry ('multilinestring ((10.02 20.01, 10.32 23.98,
11.92 25.64), (9.55 23.75, 15.36 30.11))', 4326)
);
INSERT INTO geometrytype_test (g1) VALUES (
st_geometry ('multipolygon (((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01)), ((51.71 21.73, 73.36 27.04, 71.52 32.87,
52.43 31.90,51.71 21.73)))', 4326)
);
SELECT (st_geometrytype (g1))
AS "Geometry_type"
FROM geometrytype_test;
Geometry_type
ST_POINT
ST_LINESTRING
ST_POLYGON
ST_MULTIPOINT
ST_MULTILINESTRING
ST_MULTIPOLYGON