Ce face MultiPoint(), MultiLineString(), MultiPolygon()
Geometriile „Multi” țin mai multe elemente de același fel într-o singură valoare: toate sediile unei firme (MULTIPOINT), toate liniile unui tramvai (MULTILINESTRING) sau o țară cu insule (MULTIPOLYGON).
MultiPoint() primește puncte, MultiLineString() primește linii, iar MultiPolygon() primește poligoane. În textul WKT, fiecare punct dintr-un MULTIPOINT apare între paranteze.
Parametri
| Parametru | Descriere |
|---|---|
punct / linie / poligon |
Geometriile grupate, toate de același tip. |
Ce returnează
O valoare MULTIPOINT, MULTILINESTRING sau MULTIPOLYGON.
Exemple
Exemplul 1: Câte un exemplu din fiecare
SELECT ST_AsText(MultiPoint(Point(1, 1), Point(2, 6), Point(5, 3))) AS sedii;
SELECT ST_AsText(MultiLineString(
LineString(Point(0, 0), Point(3, 0)),
LineString(Point(3, 4), Point(6, 4)))) AS linii;
SELECT ST_AsText(MultiPolygon(
Polygon(LineString(Point(0, 0), Point(2, 0), Point(2, 2), Point(0, 0))),
Polygon(LineString(Point(5, 5), Point(6, 5), Point(6, 6), Point(5, 5))))) AS insule;
Rezultat
+-------------------------------+
| sedii |
+-------------------------------+
| MULTIPOINT((1 1),(2 6),(5 3)) |
+-------------------------------+
+--------------------------------------+
| linii |
+--------------------------------------+
| MULTILINESTRING((0 0,3 0),(3 4,6 4)) |
+--------------------------------------+
+-------------------------------------------------------+
| insule |
+-------------------------------------------------------+
| MULTIPOLYGON(((0 0,2 0,2 2,0 0)),((5 5,6 5,6 6,5 5))) |
+-------------------------------------------------------+
Exemplul 2: Aria totală a unui MultiPolygon
SET @insule = MultiPolygon(
Polygon(LineString(Point(0, 0), Point(4, 0), Point(4, 4), Point(0, 4), Point(0, 0))),
Polygon(LineString(Point(10, 0), Point(12, 0), Point(12, 2), Point(10, 2), Point(10, 0)))
);
SELECT ST_NumGeometries(@insule) AS insule, ST_Area(@insule) AS arie_totala;
Rezultat
+--------+-------------+
| insule | arie_totala |
+--------+-------------+
| 2 | 20 |
+--------+-------------+
Greșeli frecvente
- Amesteci tipuri:
MultiPoint(Point(1, 1), LineString(...)). Pentru elemente de tipuri diferite foloseșteGeomCollection().
Comenzi înrudite
GeomCollection(): Pune geometrii de orice tip (puncte, linii, poligoane) într-o colecție; fără argumente creează o geometrie goală.ST_Collect(): Funcție de agregare: strânge geometriile din mai multe rânduri într-o singură geometrie Multi sau colecție.ST_GeometryN() și ST_NumGeometries(): Returnează a n-a geometrie dintr-o colecție sau dintr-o geometrie Multi, respectiv numărul de elemente.Point(): Creează un punct din coordonatele lui x și y; este cel mai simplu mod de a construi o geometrie.