ST_Area

Determinar el área de superficie de una geometría.

Esta función devuelve el área de superficie de un polígono, multipolígono o colección de geometría que está en formato WKB.

  • Si se utilizan coordenadas cartesianas, esta función devuelve un valor preciso.
  • Si se utilizan coordenadas esféricas, el área se calcula dividiendo la geometría en triángulos esféricos y calculando sus áreas utilizando el exceso esférico (fórmula de Huiller). Puede manejar geometrías que cruzan el meridiano 180 o contienen el polo. En el caso esferoidal, la geometría se proyecta en un sistema de coordenadas cartesianas utilizando una proyección de área igual a Behrmann, y su área se calcula de la misma manera que en el caso cartesiano.

Sintaxis

ST_Area(geo[, unit[, cSys]]);
geo
La geometría de entrada.

Tipo: VARCHAR(ANY)

unidad
Las unidades (al cuadrado) del área de salida. Los valores posibles son 'meter', 'kilometer', 'foot', 'mile' y 'nautical mile' ('metro', 'kilómetro', 'pie', 'milla' y 'milla náutica').

Tipo: VARCHAR(ANY)

Valor predeterminado: 'meter'

cSys
El sistema de coordenadas de la geometría de entrada.

Tipo: VARCHAR(ANY)

Valor predeterminado: El sistema de coordenadas del SRID de la geometría de entrada o, si la geometría de entrada no tiene SRID, 'WGS84'.

Devuelve

Valor de tipo DOUBLE que contiene el área de la geometría de entrada.

Ejemplos

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)