ST_Area() în MySQL

Returnează aria unui poligon sau a unui MULTIPOLYGON; pentru SRID 4326, în metri pătrați.

Sintaxă
ST_Area(poligon)

Ce face ST_Area()

Pentru SRID 0, aria este calculată în plan, în unitățile coordonatelor la pătrat. Pentru un SRID geografic (din MySQL 8.0.13), aria este calculată pe elipsoid, în metri pătrați. Golurile (inelele interioare) se scad din arie.

Funcția acceptă doar POLYGON și MULTIPOLYGON; pentru alte tipuri primești eroare. Pe un poligon invalid rezultatul este nedefinit.

Parametri

Parametru Descriere
poligon Un POLYGON sau MULTIPOLYGON.

Ce returnează

Un număr cu zecimale.

Exemple

Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.

CREATE TABLE cartiere (
  id INT PRIMARY KEY,
  nume VARCHAR(20),
  forma POLYGON NOT NULL
);

INSERT INTO cartiere VALUES
  (1, 'Centru',   ST_GeomFromText('POLYGON((0 0,4 0,4 4,0 4,0 0))')),
  (2, 'Copou',    ST_GeomFromText('POLYGON((0 4,4 4,4 8,0 8,0 4))')),
  (3, 'Tătărași', ST_GeomFromText('POLYGON((3 1,7 1,7 5,3 5,3 1))')),
  (4, 'Galata',   ST_GeomFromText('POLYGON((10 0,13 0,13 3,10 3,10 0))'));

Exemplul 1: Aria cartierelor (km²)

SELECT nume, ST_Area(forma) AS km2
FROM cartiere
ORDER BY km2 DESC;

Rezultat

+-------------+------+
| nume        | km2  |
+-------------+------+
| Centru      |   16 |
| Copou       |   16 |
| Tătărași    |   16 |
| Galata      |    9 |
+-------------+------+

Exemplul 2: Aria unui triunghi Iași, Cluj-Napoca, București pe glob

SET @triunghi = ST_GeomFromText(
  'POLYGON((47.1585 27.6014, 44.4268 26.1025, 46.7712 23.6236, 47.1585 27.6014))', 4326);

SELECT ROUND(ST_Area(@triunghi) / 1000000) AS km2;

Rezultat

+-------+
| km2   |
+-------+
| 43829 |
+-------+

Greșeli frecvente

  • Calculezi aria unor coordonate GPS cu SRID 0. Rezultatul este în „grade pătrate”; folosește SRID 4326 ca să obții metri pătrați.

Comenzi înrudite

  • ST_Length(): Returnează lungimea unei linii (sau suma lungimilor dintr-un MULTILINESTRING); pe SRID 4326, în metri.
  • Polygon(): Construiește un poligon din unul sau mai multe inele (LineString-uri închise).
  • ST_IsValid(): Verifică dacă o geometrie este validă după regulile OGC (de exemplu un poligon care nu se autointersectează).
  • ST_Centroid(): Returnează centrul de greutate (centroidul) al unui poligon sau al unei geometrii, ca punct.