ST_GeomFromWKB() în MySQL

Creează o geometrie de orice tip din reprezentarea ei binară WKB, opțional cu SRID.

Sintaxă
ST_GeomFromWKB(wkb [, srid [, optiuni]])
ST_GeometryFromWKB(wkb [, srid [, optiuni]])

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 direct Point(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.