Ce face ST_GeomFromWKB()
ST_GeomFromWKB() face operația inversă lui ST_AsWKB(): primește octeții WKB (de exemplu dintr-un fișier sau dintr-o altă bază de date) și returnează geometria. ST_GeometryFromWKB() este sinonim.
Începând cu MySQL 8.4, argumentul trebuie să fie WKB. O geometrie MySQL (de exemplu Point(0, 0)) nu mai este acceptată și produce eroare; manualul recomandă ST_SRID(Point(0, 0), 4326) sau ST_GeomFromWKB(ST_AsWKB(Point(0, 0)), 4326).
Parametri
| Parametru | Descriere |
|---|---|
wkb |
Șirul binar WKB, de exemplu un literal X'0101...'. |
srid |
Opțional: sistemul de coordonate. |
optiuni |
Opțional: ordinea axelor. |
Ce returnează
Geometria citită din WKB.
Exemple
Exemplul 1: Punct dintr-un literal hexazecimal
SELECT ST_AsText(ST_GeomFromWKB(X'0101000000000000000000F03F0000000000000040')) AS punct;
Rezultat
+------------+
| punct |
+------------+
| POINT(1 2) |
+------------+
Exemplul 2: WKB salvat ca BLOB și citit cu SRID
CREATE TABLE import_gps (nume VARCHAR(20), date_wkb BLOB);
INSERT INTO import_gps VALUES
('Iași', ST_AsWKB(ST_GeomFromText('POINT(47.1585 27.6014)', 4326))),
('Cluj-Napoca', ST_AsWKB(ST_GeomFromText('POINT(46.7712 23.6236)', 4326)));
SELECT nume,
ST_AsText(ST_GeometryFromWKB(date_wkb, 4326)) AS punct,
ST_SRID(ST_GeomFromWKB(date_wkb, 4326)) AS srid
FROM import_gps;
Rezultat
+-------------+------------------------+------+
| nume | punct | srid |
+-------------+------------------------+------+
| Iași | POINT(47.1585 27.6014) | 4326 |
| Cluj-Napoca | POINT(46.7712 23.6236) | 4326 |
+-------------+------------------------+------+
Greșeli frecvente
- Treci direct o geometrie:
ST_GeomFromWKB(Point(1, 2)). În MySQL 8.4 și mai nou primești „Invalid GIS data”; folosește directPoint(1, 2).
Comenzi înrudite
ST_AsBinary(): Transformă o geometrie în formatul binar standard WKB („Well-Known Binary”), folosit la schimbul de date.ST_PointFromWKB() și celelalte funcții WKB pe tip: Citesc WKB, ca ST_GeomFromWKB(), dar acceptă un singur tip de geometrie (punct, linie, poligon, Multi…, colecție).ST_GeomFromText(): Creează o geometrie de orice tip din textul ei WKT („Well-Known Text”), opțional cu SRID.