Catégories :

Fonctions géospatiales, Fonctions de conversion

TO_GEOMETRY

Analyse une entrée et renvoie une valeur de type GEOMETRY.

Voir aussi :

TRY_TO_GEOMETRY , ST_GEOMETRYFROMWKB , ST_GEOMETRYFROMWKT

Syntaxe

Utilisez l’une des méthodes suivantes :

TO_GEOMETRY( <varchar_expression> [ , <srid> ] [ , <allow_invalid> ] )

TO_GEOMETRY( <binary_expression> [ , <srid> ] [ , <allow_invalid> ] )

TO_GEOMETRY( <variant_expression> [ , <srid> ] [ , <allow_invalid> ] )
Copy

Arguments

Obligatoire :

varchar_expression

L’argument doit être une expression de chaîne qui représente un objet géométrique valide dans l’un des formats suivants :

  • WKT (texte bien connu).

  • WKB (binaire bien connu) au format hexadécimal (sans un 0x de début).

  • EWKT (texte bien connu étendu).

  • EWKB (binaire bien connu étendu) au format hexadécimal (sans un 0x de début).

  • GeoJSON.

binary_expression

L’argument doit être une expression binaire au format WKB ou EWKB.

variant_expression

L’argument doit être un OBJECT au format GeoJSON.

Facultatif :

srid

La valeur entière du SRID à utiliser.

allow_invalid

Si TRUE, spécifie que la fonction doit renvoyer un objet GEOGRAPHY ou GEOMETRY, même lorsque la forme d’entrée n’est pas valide et ne peut pas être réparée. Pour plus de détails, reportez-vous à Spécification du mode de traitement des formes géospatiales non valides.

Renvoie

La fonction renvoie une valeur de type GEOMETRY.

Notes sur l’utilisation

  • Émet une erreur si l’entrée ne peut pas être analysée comme l’un des formats pris en charge (WKT, WKB, EWKT, EWKB, GeoJSON).

  • Pour les entrées GeoJSON, WKT et WKB, si l’argument srid n’est pas spécifié, l’objet GEOMETRY résultant a pour SRID 0.

  • Pour construire un objet GEOMETRY à partir d’une entrée WKT ou EWKT, vous pouvez également utiliser ST_GEOMETRYFROMWKT.

  • Pour construire un objet GEOMETRY à partir d’une entrée WKB ou EWKB, vous pouvez également utiliser ST_GEOMETRYFROMWKB.

Exemples

L’exemple suivant montre comment utiliser la fonction TO_GEOMETRY pour convertir un objet représenté par WKT en un objet GEOMETRY. L’exemple ne spécifie pas l’argument srid, et le SRID n’est pas spécifié dans la représentation d’entrée de l’objet, de sorte que le SRID est fixé à 0.

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT TO_GEOMETRY('POINT(1820.12 890.56)');
Copy
+--------------------------------------+
| TO_GEOMETRY('POINT(1820.12 890.56)') |
|--------------------------------------|
| SRID=0;POINT(1820.12 890.56)         |
+--------------------------------------+

L’exemple suivant convertit un objet représenté par EWKT en un objet GEOMETRY. L’entrée EKWT spécifie le SRID à utiliser :

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT TO_GEOMETRY('SRID=4326;POINT(1820.12 890.56)');
Copy
+------------------------------------------------+
| TO_GEOMETRY('SRID=4326;POINT(1820.12 890.56)') |
|------------------------------------------------|
| SRID=4326;POINT(1820.12 890.56)                |
+------------------------------------------------+

L’exemple suivant montre comment spécifier le SRID en tant qu’argument d’entrée srid :

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT TO_GEOMETRY('POINT(1820.12 890.56)', 4326);
Copy
+--------------------------------------------+
| TO_GEOMETRY('POINT(1820.12 890.56)', 4326) |
|--------------------------------------------|
| SRID=4326;POINT(1820.12 890.56)            |
+--------------------------------------------+

L’exemple suivant renvoie l’objet GEOMETRY pour un objet géospatial avec une coordonnée Z décrit au format EWKT :

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT TO_GEOMETRY('SRID=32633;POINTZ(389866.35 5819003.03 30)');
Copy
+-----------------------------------------------------------+
| TO_GEOMETRY('SRID=32633;POINTZ(389866.35 5819003.03 30)') |
|-----------------------------------------------------------|
| SRID=32633;POINTZ(389866.35 5819003.03 30)                |
+-----------------------------------------------------------+