PostGIS  2.5.7dev-r@@SVN_REVISION@@
lwlinearreferencing.c File Reference
#include "liblwgeom_internal.h"
#include "lwgeom_log.h"
#include "measures3d.h"
Include dependency graph for lwlinearreferencing.c:

Go to the source code of this file.

Functions

static int segment_locate_along (const POINT4D *p1, const POINT4D *p2, double m, double offset, POINT4D *pn)
 
static POINTARRAYptarray_locate_along (const POINTARRAY *pa, double m, double offset)
 
static LWMPOINTlwline_locate_along (const LWLINE *lwline, double m, double offset)
 
static LWMPOINTlwmline_locate_along (const LWMLINE *lwmline, double m, double offset)
 
static LWMPOINTlwpoint_locate_along (const LWPOINT *lwpoint, double m, __attribute__((__unused__)) double offset)
 
static LWMPOINTlwmpoint_locate_along (const LWMPOINT *lwin, double m, __attribute__((__unused__)) double offset)
 
LWGEOMlwgeom_locate_along (const LWGEOM *lwin, double m, double offset)
 Determine the location(s) along a measured line where m occurs and return as a multipoint. More...
 
double lwpoint_get_ordinate (const POINT4D *p, char ordinate)
 Given a POINT4D and an ordinate number, return the value of the ordinate. More...
 
void lwpoint_set_ordinate (POINT4D *p, char ordinate, double value)
 Given a point, ordinate number and value, set that ordinate on the point. More...
 
int point_interpolate (const POINT4D *p1, const POINT4D *p2, POINT4D *p, int hasz, int hasm, char ordinate, double interpolation_value)
 Given two points, a dimensionality, an ordinate, and an interpolation value generate a new point that is proportionally between the input points, using the values in the provided dimension as the scaling factors. More...
 
LWCOLLECTIONlwpoint_clip_to_ordinate_range (const LWPOINT *point, char ordinate, double from, double to)
 Clip an input POINT between two values, on any ordinate input. More...
 
LWCOLLECTIONlwmpoint_clip_to_ordinate_range (const LWMPOINT *mpoint, char ordinate, double from, double to)
 Clip an input MULTIPOINT between two values, on any ordinate input. More...
 
LWCOLLECTIONlwmline_clip_to_ordinate_range (const LWMLINE *mline, char ordinate, double from, double to)
 Clip an input MULTILINESTRING between two values, on any ordinate input. More...
 
LWCOLLECTIONlwline_clip_to_ordinate_range (const LWLINE *line, char ordinate, double from, double to)
 Take in a LINESTRING and return a MULTILINESTRING of those portions of the LINESTRING between the from/to range for the specified ordinate (XYZM) More...
 
LWCOLLECTIONlwgeom_clip_to_ordinate_range (const LWGEOM *lwin, char ordinate, double from, double to, double offset)
 Given a geometry clip based on the from/to range of one of its ordinates (x, y, z, m). More...
 
LWCOLLECTIONlwgeom_locate_between (const LWGEOM *lwin, double from, double to, double offset)
 Determine the segments along a measured line that fall within the m-range given. More...
 
double lwgeom_interpolate_point (const LWGEOM *lwin, const LWPOINT *lwpt)
 Find the measure value at the location on the line closest to the point. More...
 
static double segments_tcpa (POINT4D *p0, const POINT4D *p1, POINT4D *q0, const POINT4D *q1, double t0, double t1)
 
static int ptarray_collect_mvals (const POINTARRAY *pa, double tmin, double tmax, double *mvals)
 
static int compare_double (const void *pa, const void *pb)
 
static int uniq (double *vals, int nvals)
 
static int ptarray_locate_along_linear (const POINTARRAY *pa, double m, POINT4D *p, uint32_t from)
 
double lwgeom_tcpa (const LWGEOM *g1, const LWGEOM *g2, double *mindist)
 Find the time of closest point of approach. More...
 
int lwgeom_cpa_within (const LWGEOM *g1, const LWGEOM *g2, double maxdist)
 Is the closest point of approach within a distance ? More...