Definición
ST_Dimension devuelve la dimensión de un objeto de geometría. En este caso, dimensión se refiere a la longitud y el ancho. Por ejemplo, un punto no tiene ni longitud ni ancho, con lo que su dimensión es 0; sin embargo, una línea tiene longitud pero no ancho, de modo que su dimensión es 1.
Sintaxis
Oracle y PostgreSQL
sde.st_dimension (geometry1 sde.st_geometry)
SQLite
st_dimension (geometry1 geometryblob)
Tipo de devolución
Entero
Ejemplo
La tabla dimension_test se crea con las columnas geotype y g1. La columna geotipo almacena el nombre de la subclase almacenada en la columna de geometría g1.
La declaración SELECT enumera el nombre de subclase almacenado en la columna geotipo con la dimensión de ese geotipo.
Oracle
CREATE TABLE dimension_test (
geotype varchar(20),
g1 sde.st_geometry
);
INSERT INTO DIMENSION_TEST VALUES (
'Point',
sde.st_pointfromtext ('point (10.02 20.01)', 4326)
);
INSERT INTO DIMENSION_TEST VALUES (
'Linestring',
sde.st_linefromtext ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO DIMENSION_TEST VALUES (
'Polygon',
sde.st_polyfromtext ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01))', 4326)
);
INSERT INTO DIMENSION_TEST VALUES (
'Multipoint',
sde.st_mpointfromtext ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO DIMENSION_TEST VALUES (
'Multilinestring',
sde.st_mlinefromtext ('multilinestring ((10.02 20.01, 10.32 23.98, 11.92 25.64), (9.55 23.75, 15.36 30.11))', 4326)
);
INSERT INTO DIMENSION_TEST VALUES (
'Multipolygon',
sde.st_mpolyfromtext ('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 geotype, sde.st_dimension (g1) Dimension
FROM DIMENSION_TEST;
GEOTYPE Dimension
Point 0
Linestring 1
Polygon 2
Multipoint 0
Multilinestring 1
Multipolygon 2
PostgreSQL
CREATE TABLE dimension_test (
geotype varchar(20),
g1 sde.st_geometry
);
INSERT INTO dimension_test VALUES (
'Point',
sde.st_point ('point (10.02 20.01)', 4326)
);
INSERT INTO dimension_test VALUES (
'Linestring',
sde.st_linestring ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO dimension_test VALUES (
'Polygon',
sde.st_polygon ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01))', 4326)
);
INSERT INTO dimension_test VALUES (
'Multipoint',
sde.st_multipoint ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO dimension_test VALUES (
'Multilinestring',
sde.st_multilinestring ('multilinestring ((10.02 20.01, 10.32 23.98, 11.92 25.64), (9.55 23.75, 15.36 30.11))', 4326)
);
INSERT INTO dimension_test VALUES (
'Multipolygon',
sde.st_multipolygon ('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 geotype, sde.st_dimension (g1)
AS Dimension
FROM dimension_test;
geotype dimension
Point 0
Linestring 1
Polygon 2
Multipoint 0
Multilinestring 1
Multipolygon 2
SQLite
CREATE TABLE dimension_test (
geotype varchar(20)
);
SELECT AddGeometryColumn (
NULL,
'dimension_test',
'g1',
4326,
'geometry',
'xy',
'null'
);
INSERT INTO dimension_test VALUES (
'Point',
st_point ('point (10.02 20.01)', 4326)
);
INSERT INTO dimension_test VALUES (
'Linestring',
st_linestring ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO dimension_test VALUES (
'Polygon',
st_polygon ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01))', 4326)
);
INSERT INTO dimension_test VALUES (
'Multipoint',
st_multipoint ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO dimension_test VALUES (
'Multilinestring',
st_multilinestring ('multilinestring ((10.02 20.01, 10.32 23.98, 11.92 25.64), (9.55 23.75, 15.36 30.11))', 4326)
);
INSERT INTO dimension_test VALUES (
'Multipolygon',
st_multipolygon ('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 geotype, st_dimension (g1)
AS "Dimension"
FROM dimension_test;
geotype Dimension
Point 0
Linestring 1
Polygon 2
Multipoint 0
Multilines 1
Multipolyg 2