ST_ExteriorRing

Определение

ST_ExteriorRing возвращает внешнее кольцо полигона в виде строки linestring.

Синтаксис

sde.st_exteriorring (pl1 sde.st_geometry)

Тип возврата

ST_LineString

Пример

Орнитолог, которая хочет изучить популяцию птиц на нескольких островах, знает, что зона питания интересующего её вида птиц ограничена прибрежной полосой. При вычислении совокупной ёмкости популяции островов орнитолог должна знать периметр островов. Некоторые острова такие большие, что содержат несколько озер. Однако береговая линия озер населена только другим, более агрессивным видом птиц. Поэтому орнитолог должна знать периметр только внешнего кольца островов.

Столбцы ID и name таблицы islands определяют каждый остров, а в столбце land polygon хранится геометрия острова.

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)
);

Функция ST_ExteriorRing извлекает внешнее кольцо из каждого полигона острова в виде строки linestring. Функция ST_Length вычисляет длину строки linestring. Длины строк linestring суммируются функцией 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

Внешние кольца островов представляют экологическую зону каждого острова, общую с морем.

12/10/2012