Ce face ST_GeometryType()
ST_GeometryType() spune ce fel de geometrie conține o valoare. Este utilă când o coloană de tip GEOMETRY poate conține tipuri diferite, sau ca să verifici datele importate.
Numele sunt scrise cu majuscule. Pentru o colecție, MySQL returnează GEOMCOLLECTION.
Parametri
| Parametru | Descriere |
|---|---|
geometrie |
Valoarea spațială. |
Ce returnează
Un text cu numele tipului.
Exemple
Exemplul 1: Tipuri amestecate într-o coloană GEOMETRY
CREATE TABLE obiecte (nume VARCHAR(20), forma GEOMETRY);
INSERT INTO obiecte VALUES
('Statie', Point(1, 1)),
('Traseu', ST_GeomFromText('LINESTRING(0 0,3 4)')),
('Parc', ST_GeomFromText('POLYGON((0 0,4 0,4 4,0 0))')),
('Sedii', ST_GeomFromText('MULTIPOINT(1 1,2 2)')),
('Pachet', GeomCollection(Point(1, 1)));
SELECT nume, ST_GeometryType(forma) AS tip FROM obiecte;
Rezultat
+--------+----------------+
| nume | tip |
+--------+----------------+
| Statie | POINT |
| Traseu | LINESTRING |
| Parc | POLYGON |
| Sedii | MULTIPOINT |
| Pachet | GEOMCOLLECTION |
+--------+----------------+
Exemplul 2: Numărare pe tipuri
CREATE TABLE obiecte (forma GEOMETRY);
INSERT INTO obiecte VALUES (Point(1, 1)), (Point(2, 2)), (ST_GeomFromText('LINESTRING(0 0,3 4)'));
SELECT ST_GeometryType(forma) AS tip, COUNT(*) AS cate
FROM obiecte
GROUP BY tip;
Rezultat
+------------+------+
| tip | cate |
+------------+------+
| POINT | 2 |
| LINESTRING | 1 |
+------------+------+
Greșeli frecvente
- Compari cu
'GeometryCollection'. MySQL returnează'GEOMCOLLECTION'; verifică rezultatul real înainte să scrii condiția.
Comenzi înrudite
ST_Dimension(): Returnează dimensiunea unei geometrii: 0 pentru puncte, 1 pentru linii, 2 pentru poligoane.ST_IsEmpty(): Returnează 1 dacă geometria este goală (colecția goală) și 0 în rest.ST_AsText(): Transformă o geometrie în text WKT, ușor de citit: POINT(1 2), LINESTRING(…), POLYGON(…).