Definición
ST_GeometryType toma un objeto de geometría y devuelve su tipo de geometría (por ejemplo, punto, línea, polígono, multipunto) como una cadena de caracteres.
Sintaxis
Oracle y PostgreSQL
sde.st_geometrytype (g1 sde.st_geometry)
SQLite
st_geometrytype (g1 geometryblob)
Tipo de devolución
Varchar(32) (Oracle y PostgreSQL) o texto (SQLite) que contiene una de las siguientes opciones:
- ST_Point
- ST_LineString
- ST_Polygon
- ST_MultiPoint
- ST_MultiLineString
- ST_MultiPolygon
Ejemplo
La tabla geometrytype_test contiene la columna de geometría g1.
Las declaraciones INSERT insertan cada subclase de geometría en la columna g1.
La consulta SELECT enumera el tipo de geometría de cada subclase almacenada en la columna de geometría g1.
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