ST_Area

Bestimmt den Flächenbereich einer Geometrie.

Diese Funktion gibt den Flächenbereich einer Polygon-, Multipolygon- oder Geometriengruppe zurück, die das WKB-Format hat.

  • Wenn kartesische Koordinaten verwendet werden, gibt diese Funktion einen genauen Wert zurück.
  • Wenn sphärische Koordinaten verwendet werden, wird der Bereich berechnet, indem die Geometrie in sphärische Dreiecke unterteilt wird und ihre Flächen mit sphärischem Überschuss berechnet werden (L'Huillier-Formel). Die Funktion kann Geometrien verarbeiten, die den 180-Grad-Meridian überqueren oder den Pol enthalten. Bei sphärischen Koordinaten wird die Geometrie in ein kartesisches Koordinatensystem projiziert, indem eine flächentreue Behrmann-Projektion verwendet wird, und ihre Fläche wird wie bei kartesischen Koordinaten berechnet.

Syntax

ST_Area(geo[, unit[, cSys]]);
Geo
Die Eingabegeometrie.

Typ: VARCHAR(ANY)

Einheit
Die Einheiten (quadriert) des Ausgabebereichs. Mögliche Werte sind 'meter', 'kilometer', 'foot', 'mile' und 'nautical mile'.

Typ: VARCHAR(ANY)

Standardwert: 'meter'

cSys
Das Koordinatensystem der Eingabegeometrie.

Typ: VARCHAR(ANY)

Standardwert: Das Koordinatensystem der SRID der Eingabegeometrie oder, wenn die Eingabegeometrie keine SRID hat, 'WGS84'.

Rückgabe

Ein Wert des Typs DOUBLE, der die Fläche der Eingabegeometrie enthält.

Beispiele

SELECT inza..ST_Area(inza..ST_WKTToSQL('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 1234));

ST_AREA
---------
1
(1 row)
SELECT inza..ST_Area(inza..ST_WKTToSQL('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 1111));

ST_AREA
---------
12367196844.731
(1 row)
SELECT inza..ST_Area(inza..ST_WKTToSQL('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326));

ST_AREA
---------
12304814950.073
(1 row)
SELECT inza..ST_Area(inza..ST_WKTToSQL('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 1234), 'foot');
ST_AREA
---------
10.76391041671
(1 row)
SELECT inza..ST_Area(inza..ST_WKTToSQL('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 1234), 'meter', 'sphere');

ST_AREA
---------
12367196844.731
(1 row)
SELECT inza..ST_Area(inza..ST_WKTToSQL('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))'), 'meter', 1111);

ST_AREA
---------
12367196844.731
(1 row)