MobilityDB 1.3
Loading...
Searching...
No Matches
Macros | Functions
tgeo_spatialfuncs.h File Reference
#include <postgres.h>
#include <liblwgeom.h>
#include <meos.h>
#include "temporal/temporal.h"

Go to the source code of this file.

Macros

#define TGEO_TO_TPOINT   true
 Symbolic constants for transforming tgeo <-> tpoint. More...
 
#define TGEOG_TO_TGEOM   false
 
#define TGEOGP_TO_TGEOMP   false
 
#define TGEOM_TO_TGEOG   true
 Symbolic constants for transforming tgeompoint <-> tgeogpoint. More...
 
#define TGEOMP_TO_TGEOGP   true
 Spatial functions for temporal points. More...
 
#define TPOINT_TO_TGEO   false
 

Functions

bool circle_type (const GSERIALIZED *gs)
 Return true if the geometry/geography is a circle. More...
 
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 2D segment to the given point, as a fraction of total segment length. More...
 
long double closest_point3dz_on_segment_ratio (const POINT3DZ *p, const POINT3DZ *A, const POINT3DZ *B, POINT3DZ *closest)
 Return a long double between 0 and 1 representing the location of the closest point on the 3D segment to the given point, as a fraction of total segment length. 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_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 datum2_point_ne (Datum point1, Datum point2)
 
Datum datum2_point_nsame (Datum point1, Datum point2)
 
Datum datum2_point_same (Datum point1, Datum point2)
 
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...
 
int eacomp_tgeo_geo (const Temporal *temp, const GSERIALIZED *gs, Datum(*func)(Datum, Datum, meosType), bool ever)
 Return true if a temporal geo and a geo satisfy the ever/always comparison. More...
 
bool ensure_circle_type (const GSERIALIZED *gs)
 Ensure that the geometry/geography is a circle. 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_is_latlong (int32_t srid)
 Ensure that an SRID is geodetic. More...
 
bool ensure_srid_known (int32_t srid)
 Ensure that the SRID is known. More...
 
bool ensure_valid_geo_geo (const GSERIALIZED *gs1, const GSERIALIZED *gs2)
 Ensure the validity of two temporal 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_tpoint_geo (const Temporal *temp, const GSERIALIZED *gs)
 Ensure the validity of two temporal points. More...
 
bool ensure_valid_tpoint_tpoint (const Temporal *temp1, const Temporal *temp2)
 Ensure the validity of two temporal points. 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...
 
GSERIALIZED ** geo_extract_elements (const GSERIALIZED *gs, int *count)
 
GSERIALIZEDgeo_serialize (const LWGEOM *geom)
 Serialize a geometry/geography. More...
 
GSERIALIZEDgeocircle_make (double x, double y, double radius, int32_t srid)
 Return a circle created from a central point and a radius. 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_collinear (Datum value1, Datum value2, Datum value3, double ratio, bool hasz, bool geodetic)
 Return true if the three values are collinear. More...
 
bool geopoint_eq (const GSERIALIZED *gs1, const GSERIALIZED *gs2)
 Return true if the points are equal. More...
 
GSERIALIZEDgeopoint_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...
 
void interpolate_point4d_spheroid (const POINT4D *p1, const POINT4D *p2, POINT4D *p, const SPHEROID *s, double f)
 Find the interpolation point p between geography points p1 and p2 so that len(p1,p) == len(p1,p2) * f and p falls on the p1,p2 segment. More...
 
LWGEOMlwcircle_make (double x, double y, double radius, int32_t srid)
 Return a circle created from a central point and a radius. More...
 
LWGEOMlwcoll_from_points_lines (LWGEOM **points, LWGEOM **lines, int npoints, int nlines)
 Return a geometry from an array of points and lines. More...
 
LWLINElwline_make (Datum value1, Datum value2)
 Return the line connecting two geometry points. More...
 
LWGEOMlwpointarr_make_trajectory (LWGEOM **points, int count, interpType interp)
 Return 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...
 
bool mline_type (const GSERIALIZED *gs)
 Ensure that the geometry/geography is a (multi)line. More...
 
Datum pointsegm_interpolate (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 pointsegm_locate (Datum start, Datum end, Datum point, double *dist)
 Return a float in (0,1) representing the location of the closest point on the line segment to the given point, as a fraction of the total segment length, return -1.0 if the point is not located in the segment or if is approximately equal to the start or to the end point. More...
 
long double pointsegm_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...
 
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...
 
int spheroid_init_from_srid (int32_t srid, SPHEROID *s)
 Return 1 if the spheroid in the last argument was initialized from an SRID, return 0 otherwise. More...
 
int tgeogpointsegm_intersection (Datum start1, Datum end1, Datum start2, Datum end2, TimestampTz lower, TimestampTz upper, TimestampTz *t)
 Return 1 if the segments of two temporal geography points intersect at the timestamptz output in the last argument. More...
 
int tgeompointsegm_intersection (Datum start1, Datum end1, Datum start2, Datum end2, TimestampTz lower, TimestampTz upper, TimestampTz *t)
 Return 1 if the segments of two temporal geometry points intersect at the timestamptz output in the last argument. More...
 
Temporaltpoint_get_coord (const Temporal *temp, int coord)
 Return one of the coordinates of a temporal point as a temporal float. More...
 
int tpointsegm_intersection_value (Datum start, Datum end, Datum value, TimestampTz lower, TimestampTz upper, TimestampTz *t)
 Return 1 if a segment of a temporal point value intersects a point at the timestamp output in the last argument. More...
 
int tpointseq_stops_iter (const TSequence *seq, double maxdist, int64 mintunits, TSequence **result)
 Return the subsequences where the temporal value stays within an area with a given maximum size for at least the specified duration (iterator function) More...