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)