Ce face ST_GeomFromGeoJSON()
ST_GeomFromGeoJSON() transformă textul GeoJSON (de exemplu primit de la o hartă web) într-o geometrie MySQL. Dacă obiectul este un Feature sau un FeatureCollection, se extrage doar geometria. Câmpul type ține cont de majuscule: "Point", nu "point".
Fără al treilea argument, geometria primește SRID 4326. Coordonatele GeoJSON sunt longitudine, latitudine, deci ST_AsText() le afișează inversat (lat long). optiuni spune ce se întâmplă cu coordonatele în plus (de exemplu altitudinea): 1 (implicit) dă eroare, 2, 3 sau 4 le ignoră.
Parametri
| Parametru | Descriere |
|---|---|
geojson |
Textul GeoJSON. |
optiuni |
Opțional: 1 = eroare la coordonate 3D (implicit); 2, 3, 4 = elimină coordonatele în plus. |
srid |
Opțional: SRID-ul rezultatului (implicit 4326). |
Ce returnează
Geometria citită.
Exemple
Exemplul 1: Un punct GeoJSON pentru Cluj-Napoca
SET @json = '{"type": "Point", "coordinates": [23.6236, 46.7712]}';
SELECT ST_AsText(ST_GeomFromGeoJSON(@json)) AS wkt,
ST_SRID(ST_GeomFromGeoJSON(@json)) AS srid,
ST_Longitude(ST_GeomFromGeoJSON(@json)) AS longitudine;
Rezultat
+------------------------+------+-------------+
| wkt | srid | longitudine |
+------------------------+------+-------------+
| POINT(46.7712 23.6236) | 4326 | 23.6236 |
+------------------------+------+-------------+
Exemplul 2: Feature cu altitudine: ignorată cu opțiunea 2
SET @json = '{"type": "Feature", "properties": {"nume": "Iași"},
"geometry": {"type": "Point", "coordinates": [27.6014, 47.1585, 45]}}';
SELECT ST_AsText(ST_GeomFromGeoJSON(@json, 2)) AS punct,
ST_AsText(ST_GeomFromGeoJSON(@json, 2, 0)) AS punct_srid_0;
Rezultat
+------------------------+------------------------+
| punct | punct_srid_0 |
+------------------------+------------------------+
| POINT(47.1585 27.6014) | POINT(27.6014 47.1585) |
+------------------------+------------------------+
Greșeli frecvente
- Trimiți coordonate cu altitudine fără al doilea argument. Primești eroare; adaugă
optiuni2 ca să fie ignorată.
Comenzi înrudite
ST_AsGeoJSON(): Transformă o geometrie în GeoJSON, formatul folosit de hărțile web (Leaflet, Mapbox, OpenLayers).ST_GeomFromText(): Creează o geometrie de orice tip din textul ei WKT („Well-Known Text”), opțional cu SRID.ST_SRID(): Returnează sistemul de coordonate (SRID) al unei geometrii sau, cu al doilea argument, îl schimbă fără a muta coordonatele.