MobilityDB
1.0
|
Spatial functions for PostGIS geography. More...
#include "point/geography_funcs.h"
#include <postgres.h>
#include <float.h>
#include <fmgr.h>
#include <utils/array.h>
#include <utils/builtins.h>
#include <liblwgeom.h>
#include "point/postgis.h"
#include "point/tpoint_spatialfuncs.h"
Data Structures | |
struct | sort_node |
Macros | |
#define | CIRC_NODE_SIZE 8 |
#define | PG_GETARG_GSERIALIZED_P_COPY(varno) ((GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(varno))) |
Functions | |
int | ptarray_has_z (const POINTARRAY *pa) |
int | ptarray_has_m (const POINTARRAY *pa) |
int | circ_tree_get_point (const CIRC_NODE *node, POINT2D *pt) |
int | circ_tree_contains_point (const CIRC_NODE *node, const POINT2D *pt, const POINT2D *pt_outside, int *on_boundary) |
CIRC_NODE * | lwgeom_calculate_circ_tree (const LWGEOM *lwgeom) |
void | circ_tree_free (CIRC_NODE *node) |
double | circ_tree_distance_tree (const CIRC_NODE *n1, const CIRC_NODE *n2, const SPHEROID *spheroid, double threshold) |
static GSERIALIZED * | geography_serialize (LWGEOM *geom) |
static int | circ_node_is_leaf (const CIRC_NODE *node) |
static double | circ_node_min_distance (const CIRC_NODE *n1, const CIRC_NODE *n2) |
static double | circ_node_max_distance (const CIRC_NODE *n1, const CIRC_NODE *n2) |
static int | circ_nodes_sort_cmp (const void *a, const void *b) |
static void | circ_internal_nodes_sort (CIRC_NODE **nodes, uint32_t num_nodes, const CIRC_NODE *target_node) |
double | circ_tree_distance_tree_internal (const CIRC_NODE *n1, const CIRC_NODE *n2, double threshold, double *min_dist, double *max_dist, GEOGRAPHIC_POINT *closest1, GEOGRAPHIC_POINT *closest2) |
LWGEOM * | geography_tree_closestpoint (const GSERIALIZED *g1, const GSERIALIZED *g2, double threshold) |
Datum | geography_closestpoint (PG_FUNCTION_ARGS) |
LWGEOM * | geography_tree_shortestline (const GSERIALIZED *g1, const GSERIALIZED *g2, double threshold, const SPHEROID *spheroid) |
Datum | geography_shortestline (PG_FUNCTION_ARGS) |
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... | |
double | ptarray_length_sphere (const POINTARRAY *pa) |
POINTARRAY * | geography_substring (POINTARRAY *ipa, double from, double to, double tolerance) |
Datum | geography_line_substring (PG_FUNCTION_ARGS) |
POINTARRAY * | geography_interpolate_points (const LWLINE *line, double length_fraction, const SPHEROID *s, char repeat) |
void | spheroid_init (SPHEROID *s, double a, double b) |
Datum | geography_line_interpolate_point (PG_FUNCTION_ARGS) |
double | ptarray_locate_point_spheroid (const POINTARRAY *pa, const POINT4D *p4d, const SPHEROID *s, double tolerance, double *mindistout, POINT4D *proj4d) |
Datum | geography_line_locate_point (PG_FUNCTION_ARGS) |
Spatial functions for PostGIS geography.
These functions are supposed to be included in a forthcoming version of PostGIS, to be proposed as a PR. This still remains to be done. These functions are not needed in MobilityDB.