Kategorien:

Geodatenfunktionen, Konvertierungsfunktionen

TO_GEOMETRY

Analysiert eine Eingabe und gibt einen Wert vom Typ GEOMETRY zurück.

Siehe auch:

TRY_TO_GEOMETRY, ST_GEOMETRYFROMWKB, ST_GEOMETRYFROMWKT

Syntax

Verwenden Sie eine der folgenden Optionen:

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

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

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

Argumente

Erforderlich:

varchar_expression

Das Argument muss ein Zeichenfolgenausdruck sein, der ein gültiges geometrisches Objekt in einem der folgenden Formate repräsentiert:

  • WKT (Well-Known Text)

  • WKB (Well-Known Binary) im Hexadezimalformat (ohne führendes 0x)

  • EWKT (Extended Well-Known Text)

  • EWKB (Extended Well-Known Binary) im Hexadezimalformat (ohne führendes 0x)

  • GeoJSON.

binary_expression

Das Argument muss ein Binärausdruck im WKB- oder EWKB-Format sein.

variant_expression

Das Argument muss ein OBJECT im GeoJSON-Format sein.

Optional:

srid

Der Ganzahlwert der zu verwendenden SRID.

allow_invalid

TRUE gibt an, dass die Funktion ein GEOGRAPHY- oder GEOMETRY-Objekt zurückgeben soll, selbst wenn die Form des Eingabeobjekts ungültig ist und nicht repariert werden kann. Weitere Informationen dazu finden Sie unter Festlegen der Verarbeitung von ungültigen Geodaten.

Rückgabewerte

Gibt einen Wert vom Typ GEOMETRY zurück.

Nutzungshinweise

  • Gibt eine Fehlermeldung aus, wenn die Eingabe nicht als eines der unterstützten Formate (WKT, WKB, EWKT, EWKB, GeoJSON) analysiert werden kann.

  • Wenn bei einer GeoJSON-, WKT- oder WKB-Eingabe das srid-Argument nicht angegeben ist, wird die SRID des resultierenden GEOMETRY-Objekts auf 0 gesetzt.

  • Um ein GEOMETRY-Objekt aus der WKT- oder EWKT-Eingabe zu erstellen, können Sie auch ST_GEOMETRYFROMWKT verwenden.

  • Um ein GEOMETRY-Objekt aus der WKB- oder EWKB-Eingabe zu erstellen, können Sie auch ST_GEOMETRYFROMWKB verwenden.

Beispiele

Das folgende Beispiel zeigt, wie die Funktion TO_GEOMETRY verwendet wird, um ein in WKT dargestelltes Objekt in ein GEOMETRY-Objekt umzuwandeln. Im Beispiel wird das Argument srid nicht angegeben, und die SRID ist in der Eingabedarstellung des Objekts nicht angegeben, sodass SRID auf 0 gesetzt wird.

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)         |
+--------------------------------------+

Das folgende Beispiel wandelt ein in EWKT dargestelltes Objekt in ein GEOMETRY-Objekt um. Die EKWT-Eingabe gibt die zu verwendende SRID an:

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)                |
+------------------------------------------------+

Das folgende Beispiel zeigt, wie die SRID als srid-Eingangsargument angegeben wird:

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)            |
+--------------------------------------------+

Das folgende Beispiel gibt das GEOMETRY-Objekt eines Geodatenobjekts mit einer Z-Koordinate im EWKT-Format zurück:

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)                |
+-----------------------------------------------------------+