Definición
ST_InteriorRingN devuelve el enésimo anillo interior de un polígono como ST_LineString.
El orden de los anillos no se puede definir previamente ya que los anillos se organizan según las reglas definidas por las rutinas de verificación de la geometría interior y no por la orientación geométrica. Si el índice supera el número de anillos interiores que contiene un polígono, se devuelve un valor nulo.
Sintaxis
Oracle
sde.st_interiorringn (polygon1 sde.st_polygon, INDEX integer)
PostgreSQL
sde.st_interiorringn (polygon1 sde.st_polygon, ring_number integer)
SQLite
st_interiorringn (polygon1 sde.st_polygon, ring_number int32)
Tipo de devolución
ST_LineString
Ejemplo
Cree una tabla, sample_polys, y agregue un registro. A continuación, seleccione el Id. y la geometría del anillo interior.
Oracle
CREATE TABLE sample_polys (
id integer,
geometry sde.st_geometry
);
INSERT INTO sample_polys VALUES (
1,
sde.st_polygon ('polygon ((40 120, 90 120, 90 150, 40 150, 40 120), (50 130, 60 130, 60 140, 50 140, 50 130),
(70 130, 80 130, 80 140, 70 140, 70 130))', 4326)
);
SELECT id, sde.st_astext (sde.st_interiorringn (geometry, 2)) Interior_Ring
FROM SAMPLE_POLYS;
ID INTERIOR_RING
1 LINESTRING (70.00000000 130.00000000, 70.00000000 140.00000000, 80.00000000 140.00000000, 80.00000000 130.00000000, 70.00000000 130.00000000)
PostgreSQL
CREATE TABLE sample_polys (
id serial,
geometry sde.st_geometry
);
INSERT INTO sample_polys (geometry) VALUES (
sde.st_polygon ('polygon ((40 120, 90 120, 90 150, 40 150, 40 120), (50 130, 60 130, 60 140, 50 140, 50 130),
(70 130, 80 130, 80 140, 70 140, 70 130))', 4326)
);
SELECT id, sde.st_astext (st_interiorringn (geometry, 2))
AS Interior_Ring
FROM sample_polys;
id interior_ring
1 LINESTRING (70 130, 70 140, 80 140, 80 130, 70 130)
SQLite
CREATE TABLE sample_polys (
id integer primary key autoincrement not null
);
SELECT AddGeometryColumn (
NULL,
'sample_polys',
'geometry',
4326,
'polygon',
'xy',
'null'
);
INSERT INTO sample_polys (geometry) VALUES (
st_polygon ('polygon ((40 120, 90 120, 90 150, 40 150, 40 120), (50 130, 60 130, 60 140, 50 140, 50 130),
(70 130, 80 130, 80 140, 70 140, 70 130))', 4326)
);
SELECT id, st_astext (st_interiorringn (geometry, 2))
AS "Interior_Ring"
FROM sample_polys;
id Interior_Ring
1 LINESTRING (70.00000000 130.00000000, 70.00000000 140.00000000, 80.00000000 140.00000000, 80.00000000 130.00000000, 70.00000000 130.00000000)