Ce face ST_MPointFromText() și celelalte funcții WKT pentru colecții
Fiecare funcție acceptă un singur tip de geometrie compusă: ST_MPointFromText() (sinonim ST_MultiPointFromText()), ST_MLineFromText() (sinonim ST_MultiLineStringFromText()), ST_MPolyFromText() (sinonim ST_MultiPolygonFromText()).
ST_GeomCollFromText() (sinonime ST_GeometryCollectionFromText() și ST_GeomCollFromTxt()) citește o colecție. Acceptă și un text MULTI..., pentru că și acela este o colecție de geometrii. Într-un MULTIPOINT, punctele pot fi scrise cu sau fără paranteze: MULTIPOINT(1 1,2 2) și MULTIPOINT((1 1),(2 2)) sunt la fel.
Parametri
| Parametru | Descriere |
|---|---|
wkt |
Textul geometriei compuse. |
srid |
Opțional: sistemul de coordonate. |
optiuni |
Opțional: ordinea axelor. |
Ce returnează
Geometria compusă corespunzătoare.
Exemple
Exemplul 1: Cele trei tipuri Multi
SELECT ST_NumGeometries(ST_MPointFromText('MULTIPOINT(1 1,2 6,5 3)')) AS puncte,
ST_Length(ST_MLineFromText('MULTILINESTRING((0 0,3 0),(3 4,6 4))')) AS lungime_totala,
ST_Area(ST_MPolyFromText('MULTIPOLYGON(((0 0,4 0,4 4,0 0)),((10 0,12 0,12 2,10 0)))')) AS arie_totala;
Rezultat
+--------+----------------+-------------+
| puncte | lungime_totala | arie_totala |
+--------+----------------+-------------+
| 3 | 6 | 10 |
+--------+----------------+-------------+
Exemplul 2: Colecții și sinonime
SELECT ST_AsText(ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(1 1,5 3))')) AS colectie,
ST_AsText(ST_GeomCollFromTxt('GEOMETRYCOLLECTION()')) AS goala,
ST_NumGeometries(ST_GeometryCollectionFromText('MULTIPOINT((1 1),(2 2))')) AS din_multi;
SELECT ST_AsText(ST_MultiPointFromText('MULTIPOINT((1 1),(2 2))')) AS mp,
ST_GeometryType(ST_MultiLineStringFromText('MULTILINESTRING((0 0,1 1))')) AS ml,
ST_GeometryType(ST_MultiPolygonFromText('MULTIPOLYGON(((0 0,1 0,1 1,0 0)))')) AS mpo;
Rezultat
+----------------------------------------------------+--------------------------+-----------+
| colectie | goala | din_multi |
+----------------------------------------------------+--------------------------+-----------+
| GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(1 1,5 3)) | GEOMETRYCOLLECTION EMPTY | 2 |
+----------------------------------------------------+--------------------------+-----------+
+-------------------------+-----------------+--------------+
| mp | ml | mpo |
+-------------------------+-----------------+--------------+
| MULTIPOINT((1 1),(2 2)) | MULTILINESTRING | MULTIPOLYGON |
+-------------------------+-----------------+--------------+
Greșeli frecvente
- Uiți parantezele duble la poligoane: într-un
MULTIPOLYGON, fiecare poligon are propriile paranteze, iar fiecare inel are încă un rând de paranteze:MULTIPOLYGON(((...)),((...))).
Comenzi înrudite
ST_PointFromText(), ST_LineFromText(), ST_PolyFromText(): Creează un punct, o linie sau un poligon din text WKT și verifică totodată că textul are tipul cerut.ST_GeomFromText(): Creează o geometrie de orice tip din textul ei WKT („Well-Known Text”), opțional cu SRID.MultiPoint(), MultiLineString(), MultiPolygon(): Grupează mai multe puncte, linii sau poligoane într-o singură geometrie de tip „Multi”.GeomCollection(): Pune geometrii de orice tip (puncte, linii, poligoane) într-o colecție; fără argumente creează o geometrie goală.