Name

ST_TransScale — Verschiebt und skaliert eine Geometrie mit vorgegebenen Offsets und Faktoren.

Übersicht

geometry ST_TransScale(geometry geomA, float deltaX, float deltaY, float XFactor, float YFactor);

Beschreibung

Verschiebt die Geometrie mit Hilfe der Args deltaX und deltaY und skaliert sie dann mit Hilfe der Args XFactor und YFactor, wobei nur in 2D gearbeitet wird.

[Anmerkung]

ST_TransScale(geomA, deltaX, deltaY, XFactor, YFactor) ist die Kurzform für ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, 1, deltaX*XFactor, deltaY*YFactor, 0).

[Anmerkung]

Vor 1.3.4 ist diese Funktion abgestürzt, wenn die Geometrien CURVES enthalten. Dies wurde mit 1.3.4+ behoben

Verfügbarkeit: 1.1.0.

Diese Funktion unterstützt 3d und lässt den Z-Index nicht fallen.

Diese Methode unterstützt kreisförmige Strings und Kurven.

Beispiele

Code
SELECT ST_TransScale('LINESTRING(1 2 3,1 1 1)', 0.5, 1, 1, 2);
Ausgabe von Rastern
LINESTRING(1.5 6 3,1.5 4 1)
Figure
Geometry figure for visual-st-transscale-01

This example buffers a point to approximate a circle, converts it to a curve, translates it by 1,2, and scales it by 3,4.

Code
SELECT ST_TransScale(ST_LineToCurve(ST_Buffer('POINT(234 567)', 3)), 1, 2, 3, 4);
Ausgabe von Rastern
CURVEPOLYGON(CIRCULARSTRING(714 2276,696 2276,714 2276))
Figure
Geometry figure for visual-st-transscale-02

Siehe auch

ST_Affine, ST_Translate