Among the many functions that PostGIS provides, geometry manipulation is a very powerful addition. In this recipe, we will explore a simple example of using the ST_Rotate
function to rotate geometries. We will use a function from the Improving proximity filtering with KNN – advanced recipe to calculate our rotation values.
ST_Rotate
has a few variants: ST_RotateX
, ST_RotateY
, and ST_RotateZ
, with the ST_Rotate
function serving as an alias for ST_RotateZ
. Thus, for two-dimensional cases, ST_Rotate
is a typical use case.
In the Improving proximity filtering with KNN – advanced recipe, our function calculated the angle to the nearest road from a building's centroid or address point. We can symbolize that building's point according to that rotation factor as a square symbol, but more interestingly, we can explicitly build the area of that footprint in real space and rotate it to match our calculated rotation angle.