Temporal Support ST_IsValidTrajectory Returns true if the geometry is a valid trajectory. boolean ST_IsValidTrajectory geometry line Description Tell if a geometry encodes a valid trajectory. Valid trajectories are encoded as LINESTRING with M value growing from each vertex to the next. Valid trajectories are expected as input to some spatio-temporal queries like Availability: 2.2.0 &Z_support; Examples -- A valid trajectory SELECT ST_IsValidTrajectory(ST_MakeLine( ST_MakePointM(0,0,1), ST_MakePointM(0,1,2)) ); t -- An invalid trajectory SELECT ST_IsValidTrajectory(ST_MakeLine(ST_MakePointM(0,0,1), ST_MakePointM(0,1,0))); NOTICE: Measure of vertex 1 (0) not bigger than measure of vertex 0 (1) st_isvalidtrajectory ---------------------- f See Also ST_ClosestPointOfApproach Returns the measure at which points interpolated along two lines are closest. float8 ST_ClosestPointOfApproach geometry track1 geometry track2 Description Returns the smallest measure at which point interpolated along the given lines are at the smallest distance. Inputs must be valid trajectories as checked by . Null is returned if the trajectories do not overlap on the M range. See for getting the actual points at the given measure. Availability: 2.2.0 &Z_support; Examples -- Return the time in which two objects moving between 10:00 and 11:00 -- are closest to each other and their distance at that point WITH inp AS ( SELECT ST_AddMeasure('LINESTRING Z (0 0 0, 10 0 5)'::geometry, extract(epoch from '2015-05-26 10:00'::timestamptz), extract(epoch from '2015-05-26 11:00'::timestamptz) ) a, ST_AddMeasure('LINESTRING Z (0 2 10, 12 1 2)'::geometry, extract(epoch from '2015-05-26 10:00'::timestamptz), extract(epoch from '2015-05-26 11:00'::timestamptz) ) b ), cpa AS ( SELECT ST_ClosestPointOfApproach(a,b) m FROM inp ), points AS ( SELECT ST_Force3DZ(ST_GeometryN(ST_LocateAlong(a,m),1)) pa, ST_Force3DZ(ST_GeometryN(ST_LocateAlong(b,m),1)) pb FROM inp, cpa ) SELECT to_timestamp(m) t, ST_Distance(pa,pb) distance FROM points, cpa; t | distance -------------------------------+------------------ 2015-05-26 10:45:31.034483+02 | 1.96036833151395 See Also , , , ST_DistanceCPA Returns the distance between closest points of approach in two trajectories. float8 ST_DistanceCPA geometry track1 geometry track2 Description Returns the minimum distance two moving objects have ever been each-other. Inputs must be valid trajectories as checked by . Null is returned if the trajectories do not overlap on the M range. Availability: 2.2.0 &Z_support; Examples -- Return the minimum distance of two objects moving between 10:00 and 11:00 WITH inp AS ( SELECT ST_AddMeasure('LINESTRING Z (0 0 0, 10 0 5)'::geometry, extract(epoch from '2015-05-26 10:00'::timestamptz), extract(epoch from '2015-05-26 11:00'::timestamptz) ) a, ST_AddMeasure('LINESTRING Z (0 2 10, 12 1 2)'::geometry, extract(epoch from '2015-05-26 10:00'::timestamptz), extract(epoch from '2015-05-26 11:00'::timestamptz) ) b ) SELECT ST_DistanceCPA(a,b) distance FROM inp; distance ------------------ 1.96036833151395 See Also , , , ST_CPAWithin Returns true if the trajectories' closest points of approach are within the specified distance. float8 ST_CPAWithin geometry track1 geometry track2 float8 maxdist Description Checks whether two moving objects have ever been within the specified max distance. Inputs must be valid trajectories as checked by . False is returned if the trajectories do not overlap on the M range. Availability: 2.2.0 &Z_support; Examples WITH inp AS ( SELECT ST_AddMeasure('LINESTRING Z (0 0 0, 10 0 5)'::geometry, extract(epoch from '2015-05-26 10:00'::timestamptz), extract(epoch from '2015-05-26 11:00'::timestamptz) ) a, ST_AddMeasure('LINESTRING Z (0 2 10, 12 1 2)'::geometry, extract(epoch from '2015-05-26 10:00'::timestamptz), extract(epoch from '2015-05-26 11:00'::timestamptz) ) b ) SELECT ST_CPAWithin(a,b,2), ST_DistanceCPA(a,b) distance FROM inp; st_cpawithin | distance --------------+------------------ t | 1.96521473776207 See Also , , ,