These functions report the motion of a temporal rigid geometry along its centroid trajectory.
Return the total length traversed by the centroid, or its cumulative length over time
length(trgeometry) → float cumulativeLength(trgeometry) → tfloat
SELECT length(trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0),0)@2001-01-01, Pose(Point(3 4),0)@2001-01-02]'); -- 5
Return the speed of the centroid as a temporal float
speed(trgeometry) → tfloat
SELECT speed(trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(10 0), 0.0)@2001-01-02]'); -- Interp=Step;[0.000115740740741@2001-01-01, 0.000115740740741@2001-01-02]
Return the angular speed as a temporal float
angularSpeed(trgeometry) → tfloat
The shape of a rigid geometry never changes, so its angular speed is the angular speed of the pose that carries it, in radians per unit time.
SELECT asText(angularSpeed(trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0),0)@2001-01-01, Pose(Point(0 0),1)@2001-01-02]')); -- Interp=Step;[0.000011574074074@2001-01-01, 0.000011574074074@2001-01-02]
Return the time-weighted centroid of the centroid trajectory as a geometry
twCentroid(trgeometry) → geometry
SELECT ST_AsText(twCentroid(trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0),0)@2001-01-01, Pose(Point(3 4),0)@2001-01-02]')); -- POINT(1.5 2)