The standard temporal-type accessors apply: each returns the materialised geometry at the requested timestamp (the reference shape rotated and translated according to the interpolated pose), or a metadata value derived from the pose path.
Return the materialised geometry at the start, end, or a chosen timestamp
startValue(trgeometry) → geometry endValue(trgeometry) → geometry valueAtTimestamp(trgeometry,timestamptz) → geometry
SELECT asText(startValue(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]')); -- POLYGON((0 0,1 0,1 1,0 1,0 0)) SELECT asText(valueAtTimestamp( 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]', timestamptz '2001-01-01 12:00:00')); -- POLYGON((5 0,6 0,6 1,5 1,5 0))
Note that the rotation interpolates linearly along the angular shortest path; a 90° rotation between two instants placed one day apart returns a 45°-rotated polygon at the midpoint.
Return the number of distinct instants, sequences, or timestamps
numInstants(trgeometry) → integer numSequences(trgeometry) → integer numTimestamps(trgeometry) → integer
SELECT numInstants(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]'); -- 2 SELECT numSequences(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]'); -- 1 SELECT numTimestamps(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]'); -- 2
Return the array of constituent instants, sequences, or inter-instant segments
instants(trgeometry) → trgeometry[] sequences(trgeometry) → trgeometry[] segments(trgeometry) → trgeometry[]
SELECT array_length( instants(trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0));
{Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(5 0), 0.5)@2001-01-02,
Pose(Point(0 0), 0.0)@2001-01-03}'), 1);
-- 3
Return the set of distinct centroid (antenna) points seen along the trgeometry
points(trgeometry) → geomset
SELECT asText(points(trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0));
{Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(5 5), 0.0)@2001-01-02,
Pose(Point(0 0), 0.0)@2001-01-03}'));
-- {"POINT(0 0)", "POINT(5 5)"}
Return the yaw, pitch, or roll angle as a temporal float, in radians, under the ZYX intrinsic Tait-Bryan convention required by the OGC GeoPose Basic-YPR conformance class
yaw(trgeometry) → tfloat pitch(trgeometry) → tfloat roll(trgeometry) → tfloat
A rigid geometry carries its orientation in its poses, so each of these projects onto the temporal pose and asks it, exactly as the tpose accessors of the same name do. A 2D rigid geometry yaws by the stored angle of each pose and neither pitches nor rolls.
SELECT asText(yaw(trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(0 0), 1.5)@2001-01-02]')); -- [0@2001-01-01, 1.5@2001-01-02] SELECT asText(pitch(trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0), 0.0)@2001-01-01, Pose(Point(0 0), 1.5)@2001-01-02]')); -- [0@2001-01-01, 0@2001-01-02]
Return the static reference geometry
geom(trgeometry) → geometry
SELECT ST_AsText(geom(trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); Pose(Point(5 0), 0.5)@2001-01-01')); -- POLYGON((0 0,1 0,1 1,0 1,0 0))