![]() |
MobilityDB 1.3
|
Ever/always spatial relationships for temporal geos. More...
#include "geo/tgeo_spatialrels.h"
#include <assert.h>
#include <meos.h>
#include <meos_internal.h>
#include <meos_internal_geo.h>
#include "temporal/lifting.h"
#include "temporal/tsequence.h"
#include "geo/postgis_funcs.h"
#include "geo/tgeo.h"
#include "geo/tgeo_spatialfuncs.h"
#include "geo/tgeo_tempspatialrels.h"
Functions | |
int | acontains_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp) |
Return 1 if a geometry always contains a temporal geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | acontains_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs) |
Return 1 if a geometry always contains a temporal geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | acontains_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2) |
Return 1 if a temporal geometry ever contains another one, 0 if not, and -1 on error. More... | |
int | acovers_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp) |
Return 1 if a geometry always covers a temporal geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | acovers_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs) |
Return 1 if a geometry always covers a temporal geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | acovers_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2) |
Return 1 if a temporal geometry ever covers another one, 0 if not, and -1 on error. More... | |
int | adisjoint_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs) |
Return 1 if a temporal geometry and a geometry are always disjoint, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | adisjoint_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2) |
Return 1 if the temporal geos are always disjoint, 0 if not, and -1 on error or if the temporal geos do not intersect in time. More... | |
int | adwithin_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, double dist) |
Return 1 if a geometry and a temporal geo are always within a distance, 0 if not, -1 on error or if the geometry is empty. More... | |
int | adwithin_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, double dist) |
Return 1 if two temporal geos are always within a distance, 0 if not, -1 on error or if they do not intersect on time. More... | |
int | aintersects_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs) |
Return 1 if a temporal geometry always intersects a temporal geometry, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | aintersects_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2) |
Return 1 if the temporal geos always intersect, 0 if not, and -1 on error or if the temporal geos do not intersect in time. More... | |
int | atouches_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs) |
Return 1 if a temporal geometry always touches a geometry, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | atouches_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2) |
Return 1 if a temporal geometry always touches another one, 0 if not, and -1 on error. More... | |
int | atouches_tpoint_geo (const Temporal *temp, const GSERIALIZED *gs) |
Return 1 if a temporal point always touches a geometry, 0 if not, and -1 on error or if the geometry is empty. More... | |
Datum | datum_geog_disjoint (Datum geog1, Datum geog2) |
Return a Datum true if two geographies are disjoint. More... | |
Datum | datum_geog_dwithin (Datum geog1, Datum geog2, Datum dist) |
Return a Datum true if two geographies are within a distance. More... | |
Datum | datum_geog_intersects (Datum geog1, Datum geog2) |
Return a Datum true if two geographies intersect. More... | |
Datum | datum_geom_contains (Datum geom1, Datum geom2) |
Return a Datum true if the first geometry covers the second one. More... | |
Datum | datum_geom_covers (Datum geom1, Datum geom2) |
Return a Datum true if the first geometry covers the second one. More... | |
Datum | datum_geom_disjoint2d (Datum geom1, Datum geom2) |
Return a Datum true if two geometries are disjoint in 2D. More... | |
Datum | datum_geom_disjoint3d (Datum geom1, Datum geom2) |
Return a Datum true if two geometries are disjoint in 3D. More... | |
Datum | datum_geom_dwithin2d (Datum geom1, Datum geom2, Datum dist) |
Return a Datum true if two 2D geometries are within a distance. More... | |
Datum | datum_geom_dwithin3d (Datum geom1, Datum geom2, Datum dist) |
Return a Datum true if two 3D geometries are within a distance. More... | |
Datum | datum_geom_intersects2d (Datum geom1, Datum geom2) |
Return a Datum true if two geometries intersect in 2D. More... | |
Datum | datum_geom_intersects3d (Datum geom1, Datum geom2) |
Return a Datum true if two geometries intersect in 3D. More... | |
Datum | datum_geom_relate_pattern (Datum geom1, Datum geom2, Datum p) |
Return a Datum true if two 2D geometries are within a distance. More... | |
Datum | datum_geom_touches (Datum geom1, Datum geom2) |
Return a Datum true if the first geometry covers the second one. More... | |
int | ea_contains_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp, bool ever) |
Return 1 if a temporal geometry ever/always contains a geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | ea_contains_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, bool ever) |
Return 1 if a temporal geometry ever/always contains a geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | ea_contains_tgeo_geo_int (const Temporal *temp, const GSERIALIZED *gs, bool ever, bool invert) |
Return 1 if a temporal geometry ever/always contains a geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | ea_contains_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, bool ever) |
Return 1 if a temporal geometry ever contains another temporal geometry, 0 if not, and -1 on error. More... | |
int | ea_covers_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp, bool ever) |
Return 1 if a temporal geometry ever/always covers a geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | ea_covers_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, bool ever) |
Return 1 if a temporal geometry ever/always covers a geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | ea_covers_tgeo_geo_int (const Temporal *temp, const GSERIALIZED *gs, bool ever, bool invert) |
Return 1 if a temporal geometry ever/always covers a geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | ea_covers_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, bool ever) |
Return 1 if a temporal geometry ever covers another one, 0 if not, and -1 on error. More... | |
int | ea_disjoint_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp, bool ever) |
Return 1 if a temporal geometry and a geometry are ever disjoint, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | ea_disjoint_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, bool ever) |
Return 1 if a temporal geometry and a geometry are ever disjoint, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | ea_disjoint_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, bool ever) |
Return 1 if the temporal geos ever/always intersect, 0 if not, and -1 on error or if the temporal geos do not intersect in time. More... | |
int | ea_dwithin_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, double dist, bool ever) |
Return 1 if a geometry and a temporal geo are ever within the given distance, 0 if not, -1 on error or if the geometry is empty. More... | |
int | ea_dwithin_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, double dist, bool ever) |
Return 1 if two temporal geos are ever/always within a distance, 0 if not, -1 on error or if the temporal geos do not intersect on time. More... | |
int | ea_intersects_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp, bool ever) |
Return 1 if a geometry intersects a temporal geometry, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | ea_intersects_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, bool ever) |
Return 1 if a temporal geometry ever/always intersects a geometry, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | ea_intersects_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, bool ever) |
Return 1 if the temporal geos ever/always intersect, 0 if not, and -1 on error or if the temporal geos do not intersect in time. More... | |
int | ea_spatialrel_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, datum_func2 func, bool ever) |
Return 1 if two temporal geometries ever/always contains satisfy a spatial relationship, 0 if not, and -1 on error. More... | |
int | ea_spatialrel_tspatial_geo (const Temporal *temp, const GSERIALIZED *gs, datum_func2 func, bool ever, bool invert) |
Return true if two temporal geos ever/always satisfy a spatial relationship. More... | |
int | ea_spatialrel_tspatial_tspatial (const Temporal *temp1, const Temporal *temp2, datum_func2 func, bool ever) |
Return true if two temporal geometries ever/always satisfy a spatial relationship. More... | |
int | ea_touches_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, bool ever) |
Return 1 if a temporal geometry ever/always touches a geometry, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | ea_touches_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, bool ever) |
Return 1 if a temporal geometry ever/always touches another one, 0 if not, and -1 on error. More... | |
int | ea_touches_tpoint_geo (const Temporal *temp, const GSERIALIZED *gs, bool ever) |
Return 1 if a temporal point ever/always touches a geometry, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | econtains_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp) |
Return 1 if a geometry ever contains a temporal geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | econtains_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs) |
Return 1 if a temporal geometry ever contains a geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | econtains_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2) |
Return 1 if a temporal geometry ever contains another one, 0 if not, and -1 on error. More... | |
int | ecovers_geo_tgeo (const GSERIALIZED *gs, const Temporal *temp) |
Return 1 if a geometry ever covers a temporal geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | ecovers_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs) |
Return 1 if a temporal geometry ever covers a geo, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | ecovers_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2) |
Return 1 if a temporal geometry ever covers another one, 0 if not, and -1 on error. More... | |
int | edisjoint_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs) |
Return 1 if a temporal geometry and a geometry are ever disjoint, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | edisjoint_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2) |
Return 1 if the temporal geos are ever disjoint, 0 if not, and -1 on error or if the temporal geos do not intersect in time. More... | |
int | edwithin_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, double dist) |
Return 1 if a geometry and a temporal geo are ever within the given distance, 0 if not, -1 on error or if the geometry is empty. More... | |
int | edwithin_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, double dist) |
Return 1 if two temporal geos are ever within a distance, 0 if not, -1 on error or if they do not intersect on time. More... | |
int | eintersects_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs) |
Return 1 if a temporal geometry ever intersects a temporal geometry, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | eintersects_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2) |
Return 1 if the temporal geos ever intersect, 0 if not, and -1 on error or if the temporal geos do not intersect in time. More... | |
int | etouches_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs) |
Return 1 if a temporal geometry ever touches a geometry, 0 if not, and -1 on error or if the geometry is empty. More... | |
int | etouches_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2) |
Return 1 if a temporal geometry ever touches another one, 0 if not, and -1 on error. More... | |
int | etouches_tpoint_geo (const Temporal *temp, const GSERIALIZED *gs) |
Return 1 if a temporal point ever touches a geometry, 0 if not, and -1 on error or if the geometry is empty. More... | |
datum_func2 | geo_disjoint_fn (int16 flags1, int16 flags2) |
Select the appropriate disjoint function depending on the flags. More... | |
datum_func2 | geo_disjoint_fn_geo (int16 flags1, uint8_t flags2) |
Select the appropriate disjoint function depending on the flags. More... | |
datum_func3 | geo_dwithin_fn (int16 flags1, int16 flags2) |
Select the appropriate dwithin function depending on the flags. More... | |
datum_func3 | geo_dwithin_fn_geo (int16 flags1, uint8_t flags2) |
Select the appropriate dwithin function depending on the flags. More... | |
datum_func2 | geo_intersects_fn (int16 flags1, int16 flags2) |
Select the appropriate intersects function depending on the flags. More... | |
datum_func2 | geo_intersects_fn_geo (int16 flags1, uint8_t flags2) |
Select the appropriate intersects function depending on the flags. More... | |
static int | spatialrel_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, Datum param, varfunc func, int numparam, bool invert) |
Generic spatial relationship for the trajectory or traversed area of a temporal geo and a geometry. More... | |
int | spatialrel_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2, Datum param, varfunc func, int numparam) |
Generic spatial relationship for the trajectory or traversed area of two temporal geometries. More... | |
int | tpointsegm_tdwithin_turnpt (Datum start1, Datum end1, Datum start2, Datum end2, Datum value, TimestampTz lower, TimestampTz upper, TimestampTz *t1, TimestampTz *t2) |
Return the value and timestamp at which the two temporal geo segments are at the minimum distance. More... | |
Ever/always spatial relationships for temporal geos.
These relationships compute the ever/always spatial relationship between the arguments and return a Boolean. These functions may be used for filtering purposes before applying the corresponding spatiotemporal relationship.
The following relationships are supported for geometries: contains
, covers
, disjoint
, intersects
, touches
, and dwithin
.
The following relationships are supported for geographies: disjoint
, intersects
, dwithin
.
Only disjoint
, dwithin
, and intersects
are supported for 3D geometries.