![]() |
MobilityDB 1.3
|
Spatial functions for temporal geos. More...
#include "geo/tgeo_spatialfuncs.h"
#include <utils/float.h>
#include <liblwgeom.h>
#include <liblwgeom_internal.h>
#include <lwgeodetic.h>
#include <lwgeom_geos.h>
#include <meos.h>
#include <meos_geo.h>
#include <meos_internal.h>
#include <meos_internal_geo.h>
#include "temporal/postgres_types.h"
#include "temporal/lifting.h"
#include "temporal/temporal.h"
#include "temporal/temporal_compops.h"
#include "temporal/tnumber_mathfuncs.h"
#include "temporal/tsequence.h"
#include "temporal/type_util.h"
#include "geo/postgis_funcs.h"
#include "geo/stbox.h"
#include "geo/tgeo.h"
#include "geo/tgeo_distance.h"
Functions | |
Datum | datum2_geog_centroid (Datum geo) |
Return the centroid of a geography. More... | |
Datum | datum2_geom_centroid (Datum geo) |
Return the centroid of a geometry. More... | |
Datum | datum2_point_eq (Datum point1, Datum point2) |
Return true if the points are equal. More... | |
Datum | datum_geog_distance (Datum geog1, Datum geog2) |
Return the distance between the two geographies. More... | |
Datum | datum_geom_distance2d (Datum geom1, Datum geom2) |
Return the 2D distance between the two geometries. More... | |
Datum | datum_geom_distance3d (Datum geom1, Datum geom2) |
Return the 3D distance between the two geometries. More... | |
void | datum_point4d (Datum value, POINT4D *p) |
Return a 4D point from a datum. More... | |
bool | datum_point_eq (Datum point1, Datum point2) |
Return true if the points are equal. More... | |
bool | datum_point_same (Datum point1, Datum point2) |
Return true if the points are equal taking into account floating point imprecision. More... | |
Datum | datum_pt_distance2d (Datum geom1, Datum geom2) |
Return the 2D distance between the two geometry points. More... | |
Datum | datum_pt_distance3d (Datum geom1, Datum geom2) |
Return the 3D distance between the two geometry points. More... | |
bool | ensure_has_M_geo (const GSERIALIZED *gs) |
Ensure that the geometry/geography has M dimension. More... | |
bool | ensure_has_not_M_geo (const GSERIALIZED *gs) |
Ensure that the geometry/geography has not M dimension. More... | |
bool | ensure_has_not_Z_geo (const GSERIALIZED *gs) |
Ensure that the geometry/geography has not Z dimension. More... | |
bool | ensure_has_Z_geo (const GSERIALIZED *gs) |
Ensure that the geometry/geography has not Z dimension. More... | |
bool | ensure_mline_type (const GSERIALIZED *gs) |
Ensure that the geometry/geography is a (multi)line. More... | |
bool | ensure_not_empty (const GSERIALIZED *gs) |
Ensure that the geometry/geography is not empty. More... | |
bool | ensure_not_geodetic (int16 flags) |
Ensure that the spatiotemporal argument has planar coordinates. More... | |
bool | ensure_not_geodetic_geo (const GSERIALIZED *gs) |
Ensure that the geometry has planar coordinates. More... | |
bool | ensure_point_type (const GSERIALIZED *gs) |
Ensure that the geometry/geography is a point. More... | |
bool | ensure_same_dimensionality (int16 flags1, int16 flags2) |
Ensure that two temporal points have the same dimensionality as given by their flags. More... | |
bool | ensure_same_dimensionality_geo (const GSERIALIZED *gs1, const GSERIALIZED *gs2) |
Ensure that two geometries/geographies have the same dimensionality. More... | |
bool | ensure_same_dimensionality_tspatial_geo (const Temporal *temp, const GSERIALIZED *gs) |
Ensure that a spatiotemporal value and a geometry/geography have the same dimensionality. More... | |
bool | ensure_same_geodetic (int16 flags1, int16 flags2) |
Ensure that the spatiotemporal argument have the same type of coordinates, either planar or geodetic. More... | |
bool | ensure_same_geodetic_geo (const GSERIALIZED *gs1, const GSERIALIZED *gs2) |
Ensure that two geometries/geographies have the same dimensionality. More... | |
bool | ensure_same_geodetic_stbox_geo (const STBox *box, const GSERIALIZED *gs) |
Ensure that a spatiotemporal box and a geometry/geography have both planar or geodetic coordinates. More... | |
bool | ensure_same_geodetic_tspatial_base (const Temporal *temp, Datum base) |
Ensure that the spatiotemporal argument and the geometry/geography have the same type of coordinates, either planar or geodetic. More... | |
bool | ensure_same_geodetic_tspatial_geo (const Temporal *temp, const GSERIALIZED *gs) |
Ensure that the spatiotemporal argument and the geometry/geography have the same type of coordinates, either planar or geodetic. More... | |
bool | ensure_same_spatial_dimensionality (int16 flags1, int16 flags2) |
Ensure that two temporal points have the same spatial dimensionality as given by their flags. More... | |
bool | ensure_same_spatial_dimensionality_stbox_geo (const STBox *box, const GSERIALIZED *gs) |
Ensure that a spatiotemporal box and a geometry/geography have the same spatial dimensionality. More... | |
bool | ensure_same_srid (int32_t srid1, int32_t srid2) |
Ensure that the two spatial objects have the same SRID. More... | |
bool | ensure_spatial_validity (const Temporal *temp1, const Temporal *temp2) |
Ensure that the spatial constraints required for operating on two temporal geometries are satisfied. More... | |
bool | ensure_srid_known (int32_t srid) |
Ensure that the SRID is known. More... | |
bool | ensure_tgeo_point_type (const Temporal *temp) |
Ensure that all geometries composing a temporal geo are points. More... | |
bool | ensure_tgeoinst_point_type (const TInstant *inst) |
Ensure that all geometries composing a temporal geo are points. More... | |
bool | ensure_tgeoseq_point_type (const TSequence *seq) |
Ensure that all geometries composing a temporal geo are points. More... | |
bool | ensure_tgeoseqset_point_type (const TSequenceSet *ss) |
Ensure that all geometries composing a temporal geo are points. More... | |
bool | ensure_valid_spatial_stbox_stbox (const STBox *box1, const STBox *box2) |
Ensure the validity of a spatiotemporal boxes. More... | |
bool | ensure_valid_stbox_geo (const STBox *box, const GSERIALIZED *gs) |
Ensure the validity of a spatiotemporal box and a geometry. More... | |
bool | ensure_valid_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs) |
Ensure the validity of a temporal geo and a spatiotemporal box. More... | |
bool | ensure_valid_tgeo_stbox (const Temporal *temp, const STBox *box) |
Ensure the validity of a temporal geo and a spatiotemporal box. More... | |
bool | ensure_valid_tgeo_tgeo (const Temporal *temp1, const Temporal *temp2) |
Ensure the validity of two temporal geos. More... | |
bool | ensure_valid_tspatial_base (const Temporal *temp, Datum base) |
Ensure the validity of a spatiotemporal value and a geometry/geography. More... | |
bool | ensure_valid_tspatial_geo (const Temporal *temp, const GSERIALIZED *gs) |
Ensure the validity of a spatiotemporal value and a geometry/geography. More... | |
bool | ensure_valid_tspatial_tspatial (const Temporal *temp1, const Temporal *temp2) |
Ensure that two temporal numbers have the same span type. More... | |
datum_func2 | geo_distance_fn (int16 flags) |
Select the appropriate distance function. More... | |
int | geopoint_cmp (const GSERIALIZED *gs1, const GSERIALIZED *gs2) |
Return -1, 0, or 1 depending on whether the first point is less than, equal to, or greater than the second one. More... | |
bool | geopoint_eq (const GSERIALIZED *gs1, const GSERIALIZED *gs2) |
Return true if the points are equal. More... | |
GSERIALIZED * | geopoint_make (double x, double y, double z, bool hasz, bool geodetic, int32_t srid) |
Return a point created from the arguments. More... | |
bool | geopoint_same (const GSERIALIZED *gs1, const GSERIALIZED *gs2) |
Return true if the points are equal taking into account floating point imprecision. More... | |
static int16 | gserialized_flags (const GSERIALIZED *gs) |
Get the MEOS flags from a geo value. More... | |
bool | mline_type (const GSERIALIZED *gs) |
Ensure that the geometry/geography is a (multi)line. More... | |
datum_func2 | pt_distance_fn (int16 flags) |
Select the appropriate distance function. More... | |
bool | same_dimensionality_tspatial_geo (const Temporal *temp, const GSERIALIZED *gs) |
Return true if a spatiotemporal value and a geometry/geography have thesame dimensionality. More... | |
bool | same_spatial_dimensionality (int16 flags1, int16 flags2) |
Return true if the two temporal points have the same spatial dimensionality as given by their flags. More... | |
int16 | spatial_flags (Datum d, meosType basetype) |
Get the MEOS flags from a spatial value. More... | |
Temporal * | tgeo_affine (const Temporal *temp, const AFFINE *a) |
Return the 3D affine transform of a temporal geo to do things like translate, rotate, scale in one step. More... | |
Temporal * | tgeo_centroid (const Temporal *temp) |
Return the centroid of a temporal geo as a temporal point. More... | |
GSERIALIZED * | tgeo_convex_hull (const Temporal *temp) |
Return the convex hull of a temporal geo. More... | |
Temporal * | tgeo_scale (const Temporal *temp, const GSERIALIZED *scale, const GSERIALIZED *sorigin) |
Scale a temporal geo by given factors. More... | |
Temporal * | tgeo_tpoint (const Temporal *temp, bool oper) |
Return a temporal geo transformed from/to a temporal point. More... | |
GSERIALIZED * | tgeo_traversed_area (const Temporal *temp) |
Return the traversed area of a temporal geo or the trajectory for a temporal point with discrete or step interpolation. More... | |
Temporal * | tgeogpoint_to_tgeography (const Temporal *temp) |
Return a temporal geography from a temporal geography point. More... | |
Temporal * | tgeography_to_tgeogpoint (const Temporal *temp) |
Return a temporal geography point from a temporal geography. More... | |
Temporal * | tgeography_to_tgeometry (const Temporal *temp) |
Return a temporal geometry from to a temporal geography. More... | |
static TInstant * | tgeoinst_affine (TInstant *inst, const AFFINE *a) |
Return the affine transformation of a temporal geo instant. More... | |
static void | tgeoinst_affine_iter (const TInstant *inst, const AFFINE *a, TInstant **result) |
Return the affine transformation of a temporal geo instant (iterator function) More... | |
static TInstant * | tgeoinst_scale (const TInstant *inst, const POINT4D *factors) |
Return a temporal geo instant scaled by given factors. More... | |
static void | tgeoinst_scale_iter (const TInstant *inst, const POINT4D *factors, TInstant **result) |
Return the scale transformation of a temporal geo instant (iterator function) More... | |
TInstant * | tgeoinst_tpointinst (const TInstant *inst, bool oper) |
Return a temporal geo transformed from/to a temporal point. More... | |
Temporal * | tgeom_tgeog (const Temporal *temp, bool oper) |
Return a temporal geometry/geography transformed from/to a temporal geometry/geography. More... | |
Temporal * | tgeometry_to_tgeography (const Temporal *temp) |
Return a temporal geography from a temporal geometry. More... | |
Temporal * | tgeometry_to_tgeompoint (const Temporal *temp) |
Return a temporal geometry point from a temporal geometry. More... | |
TInstant * | tgeominst_tgeoginst (const TInstant *inst, bool oper) |
Return a temporal geometry/geography transformed from/to a temporal geometry/geography. More... | |
Temporal * | tgeompoint_to_tgeometry (const Temporal *temp) |
Return a temporal geometry from a temporal geometry point. More... | |
TSequence * | tgeomseq_tgeogseq (const TSequence *seq, bool oper) |
Return a temporal geometry/geography transformed from/to a temporal geometry/geography. More... | |
TSequenceSet * | tgeomseqset_tgeogseqset (const TSequenceSet *ss, bool oper) |
Return a temporal geometry/geography transformed from/to a temporal geometry/geography. More... | |
static TSequence * | tgeoseq_affine (const TSequence *seq, const AFFINE *a) |
Return the affine transform a temporal geo sequence. More... | |
static TSequence * | tgeoseq_scale (const TSequence *seq, const POINT4D *factors) |
Return a temporal geo sequence scaled by given factors. More... | |
TSequence * | tgeoseq_tpointseq (const TSequence *seq, bool oper) |
Return a temporal geo transformed from/to a temporal point. More... | |
static TSequenceSet * | tgeoseqset_affine (const TSequenceSet *ss, const AFFINE *a) |
Return the affine transformation of a temporal geo sequence set. More... | |
static TSequenceSet * | tgeoseqset_scale (const TSequenceSet *ss, const POINT4D *factors) |
Return a temporal geo sequence scaled by given factors. More... | |
TSequenceSet * | tgeoseqset_tpointseqset (const TSequenceSet *ss, bool oper) |
Return a temporal geo transformed from/to a temporal point. More... | |
Spatial functions for temporal geos.