MobilityDB 1.1
Macros | Functions
tpoint_spatialfuncs.h File Reference
#include <postgres.h>
#include <liblwgeom.h>
#include "general/temporal.h"
#include "point/tpoint.h"
Include dependency graph for tpoint_spatialfuncs.h:

Go to the source code of this file.

Macros

#define GEOG_TO_GEOM   false
 
#define GEOM_TO_GEOG   true
 Spatial functions for temporal points. More...
 

Functions

long double closest_point2d_on_segment_ratio (const POINT2D *p, const POINT2D *A, const POINT2D *B, POINT2D *closest)
 Return a long double between 0 and 1 representing the location of the closest point on the segment to the given point, as a fraction of total segment length (2D version) More...
 
long double closest_point3dz_on_segment_ratio (const POINT3DZ *p, const POINT3DZ *A, const POINT3DZ *B, POINT3DZ *closest)
 Return a float between 0 and 1 representing the location of the closest point on the segment to the given point, as a fraction of total segment length (3D version) More...
 
long double closest_point_on_segment_sphere (const POINT4D *p, const POINT4D *A, const POINT4D *B, POINT4D *closest, double *dist)
 Return a float between 0 and 1 representing the location of the closest point on the geography segment to the given point, as a fraction of total segment length. More...
 
Datum datum2_point_eq (Datum geopoint1, Datum geopoint2)
 Return true if the points are equal. More...
 
Datum datum2_point_ne (Datum geopoint1, Datum geopoint2)
 Return true if the points are equal. More...
 
POINT2D datum_point2d (Datum value)
 Return a 2D point from the datum. More...
 
const POINT2Ddatum_point2d_p (Datum value)
 Return a pointer to a 2D point from the datum. More...
 
POINT3DZ datum_point3dz (Datum value)
 Return a 3DZ point from the datum. More...
 
const POINT3DZdatum_point3dz_p (Datum value)
 Return a pointer to a 3DZ point from the datum. More...
 
void datum_point4d (Datum value, POINT4D *p)
 Return a 4D point from the datum. More...
 
bool datum_point_eq (Datum geopoint1, Datum geopoint2)
 Return true if the points are equal. More...
 
Datum datum_round_geo (Datum value, Datum prec)
 Set the precision of the coordinates to the number of decimal places. More...
 
Datum datum_transform (Datum value, Datum srid)
 Call the PostGIS transform function. More...
 
datum_func2 distance_fn (int16 flags)
 Select the appropriate distance function. More...
 
void ensure_has_M_gs (const GSERIALIZED *gs)
 Ensure that the geometry/geography has M dimension. More...
 
void ensure_has_not_M_gs (const GSERIALIZED *gs)
 Ensure that the geometry/geography has not M dimension. More...
 
void ensure_has_not_Z (int16 flags)
 Ensure that a temporal point has not Z dimension. More...
 
void ensure_has_not_Z_gs (const GSERIALIZED *gs)
 Ensure that the geometry/geography has not Z dimension. More...
 
void ensure_has_Z (int16 flags)
 Ensure that a temporal point has Z dimension. More...
 
void ensure_has_Z_gs (const GSERIALIZED *gs)
 Ensure that the geometry/geography has not Z dimension. More...
 
void ensure_non_empty (const GSERIALIZED *gs)
 Ensure that the geometry/geography is not empty. More...
 
void ensure_not_geodetic (int16 flags)
 Ensure that the spatiotemporal argument has planar coordinates. More...
 
void ensure_point_type (const GSERIALIZED *gs)
 Ensure that the geometry/geography is a point. More...
 
void ensure_same_dimensionality (int16 flags1, int16 flags2)
 Ensure that two temporal points have the same dimensionality as given by their flags. More...
 
void ensure_same_dimensionality_gs (const GSERIALIZED *gs1, const GSERIALIZED *gs2)
 Ensure that two geometries/geographies have the same dimensionality. More...
 
void ensure_same_dimensionality_tpoint_gs (const Temporal *temp, const GSERIALIZED *gs)
 Ensure that a temporal point and a geometry/geography have the same dimensionality. More...
 
void ensure_same_geodetic (int16 flags1, int16 flags2)
 Ensure that the spatiotemporal argument have the same type of coordinates, either planar or geodetic. More...
 
void ensure_same_spatial_dimensionality (int16 flags1, int16 flags2)
 Ensure that two temporal points have the same spatial dimensionality as given by their flags. More...
 
void ensure_same_spatial_dimensionality_stbox_gs (const STBox *box1, const GSERIALIZED *gs)
 Ensure that the spatiotemporal boxes have the same spatial dimensionality. More...
 
void ensure_same_spatial_dimensionality_temp_box (int16 flags1, int16 flags2)
 Ensure that a temporal point and a spatiotemporal box have the same spatial dimensionality as given by their flags. More...
 
void ensure_same_srid (int32_t srid1, int32_t srid2)
 Ensure that the two spatial "objects" have the same SRID. More...
 
void ensure_same_srid_stbox (const STBox *box1, const STBox *box2)
 Ensure that the spatiotemporal boxes have the same SRID. More...
 
void ensure_same_srid_stbox_gs (const STBox *box, const GSERIALIZED *gs)
 Ensure that a temporal point and a geometry/geography have the same SRID. More...
 
void ensure_same_srid_tpoint_stbox (const Temporal *temp, const STBox *box)
 Ensure that a temporal point and a spatiotemporal boxes have the same SRID. More...
 
void ensure_spatial_validity (const Temporal *temp1, const Temporal *temp2)
 Ensure that the spatial constraints required for operating on two temporal geometries are satisfied. More...
 
GSERIALIZEDgeo_serialize (const LWGEOM *geom)
 Serialize a geometry/geography. More...
 
Datum geog_distance (Datum geog1, Datum geog2)
 Return the distance between the two geographies. More...
 
Datum geom_distance2d (Datum geom1, Datum geom2)
 Return the 2D distance between the two geometries. More...
 
Datum geom_distance3d (Datum geom1, Datum geom2)
 Return the 3D distance between the two geometries. More...
 
Datum geom_intersection2d (Datum geom1, Datum geom2)
 Return the 2D intersection between the two geometries. More...
 
bool geopoint_collinear (Datum value1, Datum value2, Datum value3, double ratio, bool hasz, bool geodetic)
 Return true if the three values are collinear. More...
 
Datum geosegm_interpolate_point (Datum start, Datum end, long double ratio)
 Return a point interpolated from the geometry/geography segment with respect to the fraction of its total length. More...
 
long double geosegm_locate_point (Datum start, Datum end, Datum point, double *dist)
 Return a float between 0 and 1 representing the location of the closest point on the geometry segment to the given point, as a fraction of total segment length. More...
 
const POINT2Dgserialized_point2d_p (const GSERIALIZED *gs)
 Return a 2D point from the serialized geometry. More...
 
const POINT3DZgserialized_point3dz_p (const GSERIALIZED *gs)
 Return a 3DZ point from the serialized geometry. More...
 
GSERIALIZEDgspoint_make (double x, double y, double z, bool hasz, bool geodetic, int32 srid)
 Create a point. More...
 
void interpolate_point4d_sphere (const POINT3D *p1, const POINT3D *p2, const POINT4D *v1, const POINT4D *v2, double f, POINT4D *p)
 Find interpolation point p between geography points p1 and p2 so that the len(p1,p) == len(p1,p2) f and p falls on p1,p2 segment. More...
 
LWLINElwline_make (Datum value1, Datum value2)
 Compute the trajectory from two geometry points. More...
 
LWGEOMlwpointarr_make_trajectory (LWGEOM **lwpoints, int count, interpType interp)
 Compute a trajectory from a set of points. More...
 
LWGEOM ** lwpointarr_remove_duplicates (LWGEOM **points, int count, int *newcount)
 Remove duplicates from an array of LWGEOM points. More...
 
Datum pt_distance2d (Datum geom1, Datum geom2)
 Return the 2D distance between the two geometric points. More...
 
Datum pt_distance3d (Datum geom1, Datum geom2)
 Return the 3D distance between the two geometric points. More...
 
datum_func2 pt_distance_fn (int16 flags)
 Select the appropriate distance function. More...
 
bool tgeogpointsegm_intersection (const TInstant *start1, const TInstant *end1, const TInstant *start2, const TInstant *end2, TimestampTz *t)
 Return true if two segments of twp temporal geographic points intersect at a timestamp. More...
 
bool tgeompointsegm_intersection (const TInstant *start1, const TInstant *end1, const TInstant *start2, const TInstant *end2, TimestampTz *t)
 Return true if two segments of a temporal geometric points intersect at a timestamp. More...
 
Temporaltpoint_at_stbox1 (const Temporal *temp, const STBox *box, bool upper_inc)
 Restrict a temporal point to a spatiotemporal box. More...
 
Temporaltpoint_get_coord (const Temporal *temp, int coord)
 Get one of the coordinates of a temporal point as a temporal float. More...
 
Temporaltpoint_minus_stbox (const Temporal *temp, const STBox *box)
 Restrict a temporal point to the complement of a spatiotemporal box. More...
 
Temporaltpoint_round (const Temporal *temp, int prec)
 Set the precision of the coordinates of a temporal point to a number of decimal places. More...
 
Temporaltpoint_transform (const Temporal *temp, int srid)
 Transform a temporal point into another spatial reference system. More...
 
TSequencetpointcontseq_transform (const TSequence *seq, int srid)
 
TSequencetpointdiscseq_transform (const TSequence *is, int srid)
 
TInstanttpointinst_transform (const TInstant *inst, int srid)
 Transform a temporal point into another spatial reference system. More...
 
bool tpointsegm_intersection_value (const TInstant *inst1, const TInstant *inst2, Datum value, TimestampTz *t)
 Return true if a segment of a temporal point value intersects a point at the timestamp. More...
 
TSequence ** tpointseq_at_geometry (const TSequence *seq, const GSERIALIZED *gs, int *count)
 Restrict a temporal point to (the complement of) a geometry. More...
 
Span ** tpointseq_interperiods (const TSequence *seq, GSERIALIZED *gsinter, int *count)
 Get the periods at which a temporal sequence point with linear interpolation intersects a geometry. More...
 
TSequenceSettpointseqset_transform (const TSequenceSet *ss, int srid)
 Transform a temporal point into another spatial reference system. More...