Categorias:

Funções geoespaciais

ST_AREA

Retorna a área do(s) polígono(s) em um objeto GEOGRAPHY ou GEOMETRY.

Sintaxe

ST_AREA( <geography_or_geometry_expression> )
Copy

Argumentos

geography_or_geometry_expression

O argumento deve ser do tipo GEOGRAPHY ou GEOMETRY.

Retornos

Retorna um valor REAL, que representa a área:

  • Para valores de entrada GEOGRAPHY, a área está em metros quadrados.

  • Para valores de entrada GEOMETRY, a área é computada com as mesmas unidades usadas para definir as coordenadas de entrada.

Notas de uso

  • Se geography_expression não for um polígono, MultiPolygon ou GeometryCollection contendo polígonos, ST_AREA retorna 0.

  • Se geography_expression for um GeometryCollection, ST_AREA devolve a soma das áreas dos polígonos da coleção.

Exemplos

Exemplos GEOGRAPHY

Isso usa a função ST_AREA com objetos GEOGRAPHY para calcular a área da superfície terrestre 1 grau em cada lado com o piso da área no equador:

SELECT ST_AREA(TO_GEOGRAPHY('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) AS area;
+------------------+
|             AREA |
|------------------|
| 12364036567.0764 |
+------------------+
Copy

Exemplos GEOMETRY

O exemplo a seguir chama a função ST_AREA com objetos GEOMETRY que representam um ponto, LineString e polígono.

SELECT ST_AREA(g), ST_ASWKT(g)
FROM (SELECT TO_GEOMETRY(column1) as g
  from values ('POINT(1 1)'),
              ('LINESTRING(0 0, 1 1)'),
              ('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'));
Copy
+------------+--------------------------------+
| ST_AREA(G) | ST_ASWKT(G)                    |
|------------+--------------------------------|
|          0 | POINT(1 1)                     |
|          0 | LINESTRING(0 0,1 1)            |
|          1 | POLYGON((0 0,0 1,1 1,1 0,0 0)) |
+------------+--------------------------------+
Copy