Namn

ST_Rotate — Roterar en geometri runt en ursprungspunkt.

Synopsis

geometry ST_Rotate(geometry geomA, float rotRadians);

geometry ST_Rotate(geometry geomA, float rotRadians, float x0, float y0);

geometry ST_Rotate(geometry geomA, float rotRadians, geometry pointOrigin);

Beskrivning

Roterar geometrin rotRadians moturs runt ursprungspunkten. Rotationsursprunget kan anges antingen som en POINT-geometri eller som x- och y-koordinater. Om origo inte anges roteras geometrin kring POINT(0 0).

Förbättrad: 2.0.0 stöd för polyhedrala ytor, trianglar och TIN infördes.

Förbättrad: 2.0.0 ytterligare parametrar för att ange rotationens ursprung lades till.

Tillgänglighet: 1.1.2. Namn ändrat från Rotate till ST_Rotate i 1.2.2

Denna funktion stöder 3d och kommer inte att tappa z-index.

Denna metod stöder cirkulära strängar och kurvor.

Denna funktion stöder polyedriska ytor.

Denna funktion stöder trianglar och triangulerade oregelbundna nätverksytor (TIN).

Exempel

Det här exemplet roterar en geometri 180 grader.

Kod
SELECT ST_Rotate('LINESTRING (50 160,50 50,100 50)'::geometry, pi());
Utdata
LINESTRING(-50 -160,-50 -50,-100 -50)
Figur
Geometry figure for visual-st-rotate-01

Det här exemplet roterar en geometri 30 grader moturs kring x=50, y=160.

Kod
SELECT ST_Rotate('LINESTRING (50 160,50 50,100 50)'::geometry, pi()/6, 50, 160);
Utdata
LINESTRING(50 160,105 64.737206,148.30127 89.737206)
Figur
Geometry figure for visual-st-rotate-02

Det här exemplet roterar en geometri 60 grader medurs kring dess centroid.

Kod
SELECT ST_Rotate(geom, -pi()/3, ST_Centroid(geom))
FROM (SELECT 'LINESTRING (50 160,50 50,100 50)'::geometry AS geom) AS foo;
Utdata
LINESTRING(116.4225 130.6721,21.1597 75.6721,46.1597 32.3708)
Figur
Geometry figure for visual-st-rotate-03