Definition
ST_Dimension gibt die Dimension eines Geometrieobjekts zurück. In diesem Fall bezieht sich die Dimension auf die Länge und die Breite. Ein Punkt hat beispielsweise weder eine Länge noch eine Breite, daher ist seine Dimension gleich 0. Eine Linie hingegen hat eine Länge, aber keine Breite, daher entspricht ihre Dimension dem Wert 1.
Syntax
Oracle und PostgreSQL
sde.st_dimension (geometry1 sde.st_geometry)
SQLite
st_dimension (geometry1 geometryblob)
Rückgabetyp
Ganzzahl
Beispiel
Die Tabelle "dimension_test" wird mit den Spalten "geotype" und "g1" erstellt. In der Spalte "geotype" wird der Name der Subclass gespeichert, die in der Geometriespalte "g1" gespeichert ist.
Mit der SELECT-Anweisung wird der Subclass-Name, der in der Spalte "geotype" gespeichert ist, und die Dimension dieses Geometrietyps aufgelistet.
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