ST_ExteriorRing

Définition

ST_ExteriorRing retourne la boucle extérieure d'un polygone sous la forme d'un objet linestring.

Syntaxe

sde.st_exteriorring (pl1 sde.st_geometry)

Type de retour

ST_LineString

Exemple

Une ornithologue, souhaitant étudier la population d'oiseaux de plusieurs îlots, sait que la zone d'alimentation des espèces d'oiseaux qui l'intéressent est limitée au rivage. Dans le cadre du calcul de la capacité d'accueil de l'îlot, l'ornithologue doit connaître les périmètres des îlots. Certains îlots sont si grands qu'ils comportent plusieurs lacs. Toutefois, le rivage des lacs est habité exclusivement par une autre espèce d'oiseaux plus agressifs. Par conséquent, l'ornithologue n'a besoin que du périmètre de la boucle extérieure des îlots.

Les colonnes ID et name de la table islands identifient chaque île, tandis que la colonne de polygones land stocke la géométrie des îles.

CREATE TABLE islands (id integer,
name varchar(32),
land sde.st_geometry);

INSERT INTO islands VALUES (
1,
'Bear',
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))', 0)
);

INSERT INTO islands VALUES (
2,
'Johnson',
sde.st_polygon ('polygon ((10 10, 50 10, 10 30, 10 10))', 0)
);

La fonction ST_ExteriorRing extrait la boucle extérieure de chaque polygone d'îlot sous forme d'objet linestring. La longueur de l'objet linestring est calculée par la fonction ST_Length. Les longueurs des objets linestring sont totalisées par la fonction SUM.

Oracle

SELECT SUM (sde.st_length (sde.st_exteriorring (land)))
FROM ISLANDS;

SUM(ST_LENGTH(ST_EXTERIORRING(LAND)))

                            264.72136

PostgreSQL

SELECT SUM (sde.st_length (sde.st_exteriorring (land)))
FROM islands;

sum

264.721359549996

Les boucles extérieures des îlots représentent l'interface écologique maritime de chaque îlot.


3/6/2012