Name

ST_ExteriorRing — Gibt die Anzahl der inneren Ringe einer Polygongeometrie aus.

Übersicht

geometry ST_ExteriorRing(geometry a_polygon);

Beschreibung

Gibt einen Linienzug zurück, welcher den äußeren Ring der POLYGON Geometrie darstellt. Gibt NULL zurück wenn es sich bei der Geometrie um kein Polygon handelt.

[Anmerkung]

Dies funktioniert nicht mit MULTIPOLYGONen. Verwenden Sie die Funktion bitte in Zusammenhang mit ST_Dump um sie auf MULTIPOLYGONe anzuwenden.

Diese Methode implementiert die OGC Simple Features Implementation Specification for SQL 1.1. 2.1.5.1

Diese Methode setzt die SQL/MM-Spezifikation um. SQL-MM 3: 8.2.3, 8.3.3

Diese Funktion unterstützt 3d und lässt den Z-Index nicht fallen.

Beispiele

Extract the exterior ring from a Polygon with a hole.

Code
WITH input(geom) AS (VALUES (
  'POLYGON((0 0,2 9,9 11,14 6,12 0,0 0),(4 3,9 3,10 7,5 8,4 3))'::geometry
))
SELECT geom AS input_polygon,
       ST_ExteriorRing(geom) AS exterior_ring
FROM input;
Ausgabe von Rastern
POLYGON((0 0,2 9,9 11,14 6,12 0,0 0),(4 3,9 3,10 7,5 8,4 3)) | LINESTRING(0 0,2 9,9 11,14 6,12 0,0 0)
Figure
Geometry figure for visual-st-exteriorring-01

For a MultiPolygon, dump the component Polygons before extracting their exterior rings. Both component Polygons in this example have holes.

Code
WITH input(geom) AS (VALUES (
  'MULTIPOLYGON(
    ((0 0,2 9,9 11,14 6,12 0,0 0),(4 3,9 3,10 7,5 8,4 3)),
    ((18 1,18 10,29 10,31 4,25 0,18 1),(21 3,25 2,28 5,25 8,21 7,21 3))
  )'::geometry
))
SELECT part.geom AS input_polygon,
       ST_ExteriorRing(part.geom) AS exterior_ring
FROM input
CROSS JOIN LATERAL ST_Dump(geom) AS part
ORDER BY part.path;
Ausgabe von Rastern
POLYGON((0 0,2 9,9 11,14 6,12 0,0 0),(4 3,9 3,10 7,5 8,4 3)) | LINESTRING(0 0,2 9,9 11,14 6,12 0,0 0)
POLYGON((18 1,18 10,29 10,31 4,25 0,18 1),(21 3,25 2,28 5,25 8,21 7,21 3)) | LINESTRING(18 1,18 10,29 10,31 4,25 0,18 1)
Figure
Geometry figure for visual-st-exteriorring-02

Extract exterior rings from a table of Polygons.

Code
SELECT gid, ST_ExteriorRing(geom) AS ering
FROM sometable;

For a table of MultiPolygons, dump the component Polygons and collect their exterior rings into a MultiLineString.

Code
SELECT gid, ST_Collect(ST_ExteriorRing(geom)) AS erings
FROM (
  SELECT gid, (ST_Dump(geom)).geom AS geom
  FROM sometable
) AS foo
GROUP BY gid;

This example returns the 3D exterior ring of a Polygon.

Code
SELECT ST_ExteriorRing(
    'POLYGON Z ((0 0 5,4 0 5,4 3 5,0 3 5,0 0 5))'
    );
Ausgabe von Rastern
LINESTRING(0 0 5,4 0 5,4 3 5,0 3 5,0 0 5)
Figure
Geometry figure for visual-st-exteriorring-03