Kategorien:

Geodatenfunktionen

ST_TRANSFORM

Konvertiert ein GEOMETRY-Objekt von einem räumlichen Bezugssystem (SRS) in ein anderes.

Verwenden Sie diese Funktion, um die SRID und die Koordinaten des Objekts zu ändern, um sie an das neue SRS (räumliches Bezugssystem) anzupassen. Wenn Sie nur die SRID ändern müssen, ohne die Koordinaten zu ändern (z. B. wenn die SRID nicht korrekt war), verwenden Sie stattdessen ST_SETSRID.

Syntax

ST_TRANSFORM( <geometry_expression> [ , <from_srid> ] , <to_srid> );
Copy

Argumente

Erforderlich:

geometry_expression

Das Argument muss vom Typ GEOMETRY sein.

to_srid

Die SRID (Spatial Reference System Identifier) des zu verwendenden SRS. Die Funktion transformiert das GEOMETRY-Eingabeobjekt in ein neues Objekt um, das dieses SRS verwendet.

Optional:

from_srid

Die SRID, die das aktuelle SRS des GEOMETRY-Eingabeobjekts identifiziert.

Wenn dieses Argument weggelassen wird, verwendet die Funktion die SRID, die im GEOMETRY-Eingabeobjekt angegeben ist.

Rückgabewerte

Die Funktion gibt ein GEOMETRY-Objekt zurück, das die von to_srid identifizierte SRS verwendet.

Nutzungshinweise

  • SRIDs basieren auf dem EPSG-Standard (v10.082). Beispielsweise entspricht die SRID 4326 der „Authority EPSG“ mit dem Code 4326.

  • Vergewissern Sie sich, dass entweder für das GEOMETRY-Eingabeobjekt die korrekte SRID eingestellt ist oder dass Sie das Argument from_srid angeben.

  • Derzeit unterstützt die Funktion keine Datumsrasterdateien. Alle Transformationen werden mit den statischen Parametern des Datums ohne Korrektur der Rasterdatei ausgeführt.

  • Wenn geometry_expression, from_srid oder to_srid NULL sind, gibt diese Funktion NULL zurück.

  • Wenn from_srid oder to_srid nicht in ein gültiges SRID aufgelöst werden kann, tritt ein Fehler auf.

Beispiele

Im folgenden Beispiel wird ein POINT-GEOMETRY-Objekt von EPSG:32633 (WGS 84 / UTM-Zone 33N) nach EPSG:3857 (Web Mercator) transformiert.

-- Set the output format to EWKT
ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT
  ST_TRANSFORM(
    ST_GEOMFROMWKT('POINT(389866.35 5819003.03)', 32633),
    3857
  ) AS transformed_geom;
Copy
+---------------------------------------------------------------+
| transformed_geom                                              |
|---------------------------------------------------------------|
| SRID=3857;POINT(1489140.093765644 6892872.198680112)          |
+---------------------------------------------------------------+

Wenn die Quell-SRID im GEOMETRY-Objekt nicht korrekt eingestellt ist, können Sie die SRID im to_srid-Argument der Funktion angeben. Sie können beispielsweise ein POINT-GEOMETRY-Objekt von EPSG:4326 (WGS84) nach EPSG:28992 (Amersfoort / RD New) wie folgt transformieren:

-- Set the output format to EWKT
ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT
  ST_TRANSFORM(
    ST_GEOMFROMWKT('POINT(4.500212 52.161170)'),
    4326,
    28992
  ) AS transformed_geom;
Copy
+---------------------------------------------------------------+
| transformed_geom                                              |
|---------------------------------------------------------------|
| SRID=28992;POINT (94308.66600006013 464038.16881095537)       |
+---------------------------------------------------------------+