ST_InteriorRingN

Définition

ST_InteriorRingN renvoie la énième boucle intérieure d'un polygone sous la forme d'un objet ST_LineString.

L'ordre des boucles ne peut être prédéfini puisque les boucles sont agencées d'après les règles définies par les routines internes de vérification de la géométrie et non d'après leur orientation géométrique. Si la valeur d'index dépasse le nombre de boucles intérieures d'un polygone, la fonction retourne la valeur NULL.

Syntaxe

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)

Type de retour

ST_LineString

Exemple

Créez une table, sample_polys, et ajoutez un enregistrement, puis sélectionnez l'ID et la géométrie de la boucle intérieure.

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)

Thèmes connexes

5/10/2014