Catégories :

Fonctions géospatiales

ST_ASGEOJSON

Si la valeur est de type GEOGRAPHY ou GEOMETRY, renvoie la représentation GeoJSON de cette valeur.

Syntaxe

ST_ASGEOJSON( <geography_or_geometry_expression> )
Copy

Arguments

geography_or_geometry_expression

L’argument doit être une expression de type GEOGRAPHY ou GEOMETRY.

Renvoie

Un OBJECT au format GeoJSON.

Notes sur l’utilisation

Pour les objets GEOMETRY :

  • L’objet GEOMETRY renvoyé utilise le même système de coordonnées que l’objet GEOMETRY en entrée.

    Notez que la spécification GeoJSON exige que la géométrie soit dans le système de coordonnées WGS84 (SRID = 4326). Cependant, la fonction ST_ASGEOJSON n’applique pas cette règle.

  • La fonction n’ajoute pas les SRID ou toute autre information CRS à la sortie.

Exemples

Exemples GEOGRAPHY

L’exemple suivant illustre la fonction ST_ASGEOJSON :

create table geospatial_table (id INTEGER, g GEOGRAPHY);
insert into geospatial_table values
    (1, 'POINT(-122.35 37.55)'), (2, 'LINESTRING(-124.20 42.00, -120.01 41.99)');
Copy
select st_asgeojson(g)
    from geospatial_table
    order by id;
+------------------------+
| ST_ASGEOJSON(G)        |
|------------------------|
| {                      |
|   "coordinates": [     |
|     -122.35,           |
|     37.55              |
|   ],                   |
|   "type": "Point"      |
| }                      |
| {                      |
|   "coordinates": [     |
|     [                  |
|       -124.2,          |
|       42               |
|     ],                 |
|     [                  |
|       -120.01,         |
|       41.99            |
|     ]                  |
|   ],                   |
|   "type": "LineString" |
| }                      |
+------------------------+
Copy

La conversion de la sortie VARIANT en VARCHAR entraîne les résultats suivants :

select st_asgeojson(g)::varchar
    from geospatial_table
    order by id;
+-------------------------------------------------------------------+
| ST_ASGEOJSON(G)::VARCHAR                                          |
|-------------------------------------------------------------------|
| {"coordinates":[-122.35,37.55],"type":"Point"}                    |
| {"coordinates":[[-124.2,42],[-120.01,41.99]],"type":"LineString"} |
+-------------------------------------------------------------------+
Copy

Exemples GEOMETRY

L’exemple suivant illustre la fonction ST_ASGEOJSON avec un objet GEOMETRY en entrée :

SELECT ST_ASGEOJSON(TO_GEOMETRY('SRID=4326;LINESTRING(389866 5819003, 390000 5830000)')) AS geojson;
Copy
+------------------------+
| GEOJSON                |
|------------------------|
|{                       |
|  "coordinates": [      |
|    [                   |
|      389866,           |
|      5819003           |
|    ],                  |
|    [                   |
|      390000,           |
|      5830000           |
|    ]                   |
|  ],                    |
|  "type": "LineString"  |
|}                       |
+------------------------+
Copy