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)