Ce face ST_Dimension()
Dimensiunea spune dacă geometria are lungime sau arie: punctele au dimensiunea 0, liniile 1, poligoanele 2. Pentru o colecție, rezultatul este dimensiunea cea mai mare dintre elemente. Manualul menționează și valoarea -1 pentru colecția goală, dar serverul MySQL actual returnează NULL pentru ea.
Dimensiunea contează la unele relații: de exemplu ST_Overlaps() compară doar geometrii cu aceeași dimensiune.
Parametri
| Parametru | Descriere |
|---|---|
geometrie |
Valoarea spațială. |
Ce returnează
0, 1 sau 2 (NULL pentru colecția goală).
Exemple
Exemplul 1: Dimensiunea fiecărui tip
SELECT ST_Dimension(Point(1, 1)) AS punct,
ST_Dimension(ST_GeomFromText('LINESTRING(0 0,3 4)')) AS linie,
ST_Dimension(ST_GeomFromText('POLYGON((0 0,4 0,4 4,0 0))')) AS poligon,
ST_Dimension(GeomCollection(Point(1, 1), ST_GeomFromText('LINESTRING(0 0,1 1)'))) AS colectie,
ST_Dimension(GeomCollection()) AS goala;
Rezultat
+-------+-------+---------+----------+-------+
| punct | linie | poligon | colectie | goala |
+-------+-------+---------+----------+-------+
| 0 | 1 | 2 | 1 | NULL |
+-------+-------+---------+----------+-------+
Greșeli frecvente
- Confunzi dimensiunea cu numărul de coordonate. Toate geometriile MySQL au două coordonate (x și y); dimensiunea arată dacă forma are lungime sau arie.
Comenzi înrudite
ST_GeometryType(): Returnează numele tipului unei geometrii: POINT, LINESTRING, POLYGON, MULTIPOINT etc.ST_Overlaps(): Verifică dacă două geometrii de aceeași dimensiune se suprapun parțial (zona comună nu este niciuna dintre ele).