![]() |
MobilityDB 1.3
|
Spatiotemporal relationships for temporal geos. More...
#include "geo/tgeo_tempspatialrels.h"
#include <assert.h>
#include <math.h>
#include <liblwgeom.h>
#include <meos.h>
#include <meos_internal.h>
#include <meos_internal_geo.h>
#include "temporal/lifting.h"
#include "temporal/tbool_ops.h"
#include "temporal/temporal_compops.h"
#include "temporal/tinstant.h"
#include "temporal/tsequence.h"
#include "temporal/type_util.h"
#include "geo/postgis_funcs.h"
#include "geo/tgeo_restrict.h"
#include "geo/tgeo_spatialfuncs.h"
#include "geo/tgeo_spatialrels.h"
#include "cbuffer/tcbuffer_spatialrels.h"
Functions | |
Temporal * | tcontains_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a geometry contains a temporal geometry. More... | |
Temporal * | tcontains_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a temporal geometry contains a geometry. More... | |
Temporal * | tcontains_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a temporal geometry contains another one. More... | |
Temporal * | tcovers_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a geometry covers a temporal geometry. More... | |
Temporal * | tcovers_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a temporal geometry covers a geometry. More... | |
Temporal * | tcovers_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a spatiotemporal value covers another one. More... | |
Temporal * | tdisjoint_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a temporal geo and a geometry are disjoint. More... | |
Temporal * | tdisjoint_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a temporal geo and a geometry are disjoint. More... | |
Temporal * | tdisjoint_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, bool restr, bool atvalue) |
Return a temporal Boolean that states whether two temporal geos are disjoint. More... | |
int | tdwithin_add_solutions (int solutions, TimestampTz lower, TimestampTz upper, bool lower_inc, bool upper_inc, bool upper_inc1, TimestampTz t1, TimestampTz t2, TInstant **instants, TSequence **result) |
Construct the result of the tdwithin function of a segment from the solutions of the quadratic equation found previously. More... | |
Temporal * | tdwithin_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp, double dist, bool restr, bool atvalue) |
Temporal * | tdwithin_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, double dist, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a temporal geo and a geometry are within a distance. More... | |
Temporal * | tdwithin_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, double dist, bool restr, bool atvalue) |
Return a temporal Boolean that states whether two temporal geos are within a distance. More... | |
static TSequenceSet * | tdwithin_tlinearseq_base (const TSequence *seq, Datum point, Datum dist, datum_func3 func, tpfunc_temp tpfn) |
Return the timestamps at which a temporal point sequence and a point are within a distance. More... | |
static int | tdwithin_tlinearseq_base_iter (const TSequence *seq, Datum point, Datum dist, datum_func3 func, tpfunc_temp tpfn, TSequence **result) |
Return the timestamps at which a temporal point sequence and a point are within a distance (iterator function) More... | |
static TSequenceSet * | tdwithin_tlinearseq_tlinearseq (const TSequence *seq1, const TSequence *seq2, Datum dist, datum_func3 func, tpfunc_temp tpfn) |
Return the temporal dwithin relationship between two temporal point sequences. More... | |
static int | tdwithin_tlinearseq_tlinearseq_iter (const TSequence *seq1, const TSequence *seq2, Datum dist, datum_func3 func, tpfunc_temp tpfn, TSequence **result) |
Return the timestamps at which the segments of two temporal point sequences are within a distance (iterator function) More... | |
static TSequenceSet * | tdwithin_tlinearseqset_base (const TSequenceSet *ss, Datum point, Datum dist, datum_func3 func, tpfunc_temp tpfn) |
Return the timestamps at which a temporal point sequence set and a point are within a distance. More... | |
static TSequenceSet * | tdwithin_tlinearseqset_tlinearseqset (const TSequenceSet *ss1, const TSequenceSet *ss2, Datum dist, datum_func3 func, tpfunc_temp tpfn) |
Return the timestamps at which the segments of two temporal point sequence sets are within a distance. More... | |
Temporal * | tdwithin_tspatial_spatial (const Temporal *temp, Datum base, Datum dist, bool restr, bool atvalue, datum_func3 func, tpfunc_temp tpfn) |
Return a temporal Boolean that states whether a spatiotemporal value and a base value are within a distance. More... | |
Temporal * | tdwithin_tspatial_tspatial (const Temporal *sync1, const Temporal *sync2, Datum dist, bool restr, bool atvalue, datum_func3 func, tpfunc_temp tpfn) |
Return a temporal Boolean that states whether two temporal geos are within a distance. More... | |
Temporal * | tinterrel_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, bool tinter, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a temporal geo and a geometry intersect or are disjoint. More... | |
TSequenceSet * | tinterrel_tpointseq_linear_geo (const TSequence *seq, const GSERIALIZED *gs, const STBox *box, bool tinter, datum_func2 func) |
Return a temporal Boolean that states whether a temporal point with linear interpolation and a geometry intersect or are disjoint. More... | |
static TSequence ** | tinterrel_tpointseq_linear_geo_iter (const TSequence *seq, const GSERIALIZED *gs, const STBox *box, bool tinter, datum_func2 func, int *count) |
Return an array of temporal Boolean sequences that state whether a temporal point sequence with linear interpolation and a geometry intersect or are disjoint (iterator function) More... | |
static TSequence ** | tinterrel_tpointseq_simple_geo (const TSequence *seq, const GSERIALIZED *gs, const STBox *box, bool tinter, int *count) |
Return an array of temporal Boolean sequences that state whether a temporal point sequence with linear interpolation that is simple and a geometry intersect or are disjoint. More... | |
Temporal * | tinterrel_tspatial_base (const Temporal *temp, Datum base, bool tinter, bool restr, bool atvalue, datum_func2 func) |
Return a temporal Boolean that states whether a spatialtemporal value and a base value intersect or are disjoint. More... | |
Temporal * | tinterrel_tspatial_tspatial (const Temporal *temp1, const Temporal *temp2, bool tinter, bool restr, bool atvalue) |
Return a temporal Boolean that states whether two temporal geos intersect or are disjoint. More... | |
TInstant * | tinterrel_tspatialinst_base (const TInstant *inst, Datum base, bool tinter, datum_func2 func) |
Return a temporal Boolean that states whether a spatiotemporal instant and a base value intersect or are disjoint. More... | |
TSequence * | tinterrel_tspatialseq_discstep_base (const TSequence *seq, Datum base, bool tinter, datum_func2 func) |
Return a temporal Boolean that states whether a spatiotemporal sequence and a base value intersect or are disjoint. More... | |
TSequenceSet * | tinterrel_tspatialseqset_base (const TSequenceSet *ss, Datum base, const STBox *box, bool tinter, datum_func2 func) |
Return a temporal Boolean that states whether a spatiotemporal sequence set and a base value intersect or are disjoint. More... | |
Temporal * | tintersects_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a temporal geo and a geometry intersect. More... | |
Temporal * | tintersects_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a temporal geo and a geometry intersect. More... | |
Temporal * | tintersects_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, bool restr, bool atvalue) |
Return a temporal Boolean that states whether two temporal geos intersect. More... | |
Temporal * | tspatialrel_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, varfunc func, bool invert, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a temporal geometry and a geometry satisfy a spatial relationship. More... | |
Temporal * | tspatialrel_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, bool restr, bool atvalue, varfunc func) |
Return a temporal Boolean that states whether two temporal geometries satisfy a spatial relationship. More... | |
Temporal * | tspatialrel_tspatial_base (const Temporal *temp, Datum base, Datum param, varfunc func, int numparam, bool invert) |
Generic spatiotemporal relationship for a spatiotemporal value and a base value. More... | |
Temporal * | tspatialrel_tspatial_tspatial_int (const Temporal *temp1, const Temporal *temp2, Datum param, varfunc func, int numparam, bool invert) |
Generic spatiotemporal relationship for two temporal geometries. More... | |
Temporal * | ttouches_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a geometry touches a temporal geo. More... | |
Temporal * | ttouches_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a temporal geo touches a geometry. More... | |
Temporal * | ttouches_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, bool restr, bool atvalue) |
Return a temporal Boolean that states whether a temporal geometry touches another one. More... | |
Spatiotemporal relationships for temporal geos.
These relationships are applied at each instant and result in a temporal Boolean.
The following relationships are supported for a temporal geometry point and a geometry: tcontains
, tdisjoint
, tintersects
, ttouches
, and tdwithin
.
The following relationships are supported for two temporal geometry points: tdwithin
.
The following relationships are supported for two temporal geography points: tdisjoint
, tintersects
, tdwithin
.