PostGIS  2.5.7dev-r@@SVN_REVISION@@
postgis/lwgeom_geos.c File Reference
#include "../postgis_config.h"
#include "postgres.h"
#include "funcapi.h"
#include "utils/array.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
#include "utils/numeric.h"
#include "access/htup_details.h"
#include "lwgeom_functions_analytic.h"
#include "lwgeom_geos.h"
#include "liblwgeom.h"
#include "lwgeom_rtree.h"
#include "lwgeom_geos_prepared.h"
#include "float.h"
Include dependency graph for postgis/lwgeom_geos.c:

Go to the source code of this file.

Macros

#define HANDLE_GEOS_ERROR(label)
 

Functions

Datum relate_full (PG_FUNCTION_ARGS)
 
Datum relate_pattern (PG_FUNCTION_ARGS)
 
Datum disjoint (PG_FUNCTION_ARGS)
 
Datum touches (PG_FUNCTION_ARGS)
 
Datum geos_intersects (PG_FUNCTION_ARGS)
 
Datum crosses (PG_FUNCTION_ARGS)
 
Datum contains (PG_FUNCTION_ARGS)
 
Datum containsproperly (PG_FUNCTION_ARGS)
 
Datum covers (PG_FUNCTION_ARGS)
 
Datum overlaps (PG_FUNCTION_ARGS)
 
Datum isvalid (PG_FUNCTION_ARGS)
 
Datum isvalidreason (PG_FUNCTION_ARGS)
 
Datum isvaliddetail (PG_FUNCTION_ARGS)
 
Datum buffer (PG_FUNCTION_ARGS)
 
Datum geos_intersection (PG_FUNCTION_ARGS)
 
Datum convexhull (PG_FUNCTION_ARGS)
 
Datum topologypreservesimplify (PG_FUNCTION_ARGS)
 
Datum geos_difference (PG_FUNCTION_ARGS)
 
Datum boundary (PG_FUNCTION_ARGS)
 
Datum symdifference (PG_FUNCTION_ARGS)
 
Datum geos_geomunion (PG_FUNCTION_ARGS)
 
Datum issimple (PG_FUNCTION_ARGS)
 
Datum isring (PG_FUNCTION_ARGS)
 
Datum pointonsurface (PG_FUNCTION_ARGS)
 
Datum GEOSnoop (PG_FUNCTION_ARGS)
 
Datum postgis_geos_version (PG_FUNCTION_ARGS)
 
Datum centroid (PG_FUNCTION_ARGS)
 
Datum polygonize_garray (PG_FUNCTION_ARGS)
 
Datum clusterintersecting_garray (PG_FUNCTION_ARGS)
 
Datum cluster_within_distance_garray (PG_FUNCTION_ARGS)
 
Datum linemerge (PG_FUNCTION_ARGS)
 
Datum coveredby (PG_FUNCTION_ARGS)
 
Datum hausdorffdistance (PG_FUNCTION_ARGS)
 
Datum hausdorffdistancedensify (PG_FUNCTION_ARGS)
 
Datum ST_FrechetDistance (PG_FUNCTION_ARGS)
 
Datum ST_UnaryUnion (PG_FUNCTION_ARGS)
 
Datum ST_Equals (PG_FUNCTION_ARGS)
 
Datum ST_BuildArea (PG_FUNCTION_ARGS)
 
Datum ST_DelaunayTriangles (PG_FUNCTION_ARGS)
 
Datum pgis_union_geometry_array (PG_FUNCTION_ARGS)
 
 PG_FUNCTION_INFO_V1 (postgis_geos_version)
 
static char is_poly (const GSERIALIZED *g)
 
static char is_point (const GSERIALIZED *g)
 
static int pip_short_circuit (RTREE_POLY_CACHE *poly_cache, LWPOINT *point, GSERIALIZED *gpoly)
 
 PG_FUNCTION_INFO_V1 (hausdorffdistance)
 
 PG_FUNCTION_INFO_V1 (hausdorffdistancedensify)
 
 PG_FUNCTION_INFO_V1 (ST_FrechetDistance)
 
 PG_FUNCTION_INFO_V1 (pgis_union_geometry_array)
 This is the final function for GeomUnion aggregate. More...
 
 PG_FUNCTION_INFO_V1 (ST_UnaryUnion)
 
 PG_FUNCTION_INFO_V1 (geos_geomunion)
 
 PG_FUNCTION_INFO_V1 (symdifference)
 
 PG_FUNCTION_INFO_V1 (boundary)
 
 PG_FUNCTION_INFO_V1 (convexhull)
 
 PG_FUNCTION_INFO_V1 (topologypreservesimplify)
 
 PG_FUNCTION_INFO_V1 (buffer)
 
Datum ST_GeneratePoints (PG_FUNCTION_ARGS)
 
 PG_FUNCTION_INFO_V1 (ST_GeneratePoints)
 
Datum ST_OffsetCurve (PG_FUNCTION_ARGS)
 
 PG_FUNCTION_INFO_V1 (ST_OffsetCurve)
 
 PG_FUNCTION_INFO_V1 (geos_intersection)
 
 PG_FUNCTION_INFO_V1 (geos_difference)
 
 PG_FUNCTION_INFO_V1 (pointonsurface)
 
 PG_FUNCTION_INFO_V1 (centroid)
 
Datum ST_ClipByBox2d (PG_FUNCTION_ARGS)
 
 PG_FUNCTION_INFO_V1 (ST_ClipByBox2d)
 
void errorIfGeometryCollection (GSERIALIZED *g1, GSERIALIZED *g2)
 Throws an ereport ERROR if either geometry is a COLLECTIONTYPE. More...
 
 PG_FUNCTION_INFO_V1 (isvalid)
 
 PG_FUNCTION_INFO_V1 (isvalidreason)
 
 PG_FUNCTION_INFO_V1 (isvaliddetail)
 
 PG_FUNCTION_INFO_V1 (overlaps)
 overlaps(GSERIALIZED g1,GSERIALIZED g2) More...
 
 PG_FUNCTION_INFO_V1 (contains)
 
 PG_FUNCTION_INFO_V1 (containsproperly)
 
 PG_FUNCTION_INFO_V1 (covers)
 
 PG_FUNCTION_INFO_V1 (coveredby)
 ST_Within(A, B) => ST_Contains(B, A) so we just delegate this calculation to the Contains implementation. More...
 
 PG_FUNCTION_INFO_V1 (crosses)
 
 PG_FUNCTION_INFO_V1 (geos_intersects)
 
 PG_FUNCTION_INFO_V1 (touches)
 
 PG_FUNCTION_INFO_V1 (disjoint)
 
 PG_FUNCTION_INFO_V1 (relate_pattern)
 
 PG_FUNCTION_INFO_V1 (relate_full)
 
 PG_FUNCTION_INFO_V1 (ST_Equals)
 
 PG_FUNCTION_INFO_V1 (issimple)
 
 PG_FUNCTION_INFO_V1 (isring)
 
GSERIALIZEDGEOS2POSTGIS (GEOSGeom geom, char want3d)
 
GEOSGeometry * POSTGIS2GEOS (GSERIALIZED *pglwgeom)
 
uint32_t array_nelems_not_null (ArrayType *array)
 
LWGEOM ** ARRAY2LWGEOM (ArrayType *array, uint32_t nelems, int *is3d, int *srid)
 
GEOSGeometry ** ARRAY2GEOS (ArrayType *array, uint32_t nelems, int *is3d, int *srid)
 
 PG_FUNCTION_INFO_V1 (GEOSnoop)
 
 PG_FUNCTION_INFO_V1 (polygonize_garray)
 
 PG_FUNCTION_INFO_V1 (clusterintersecting_garray)
 
 PG_FUNCTION_INFO_V1 (cluster_within_distance_garray)
 
 PG_FUNCTION_INFO_V1 (linemerge)
 
 PG_FUNCTION_INFO_V1 (ST_BuildArea)
 
 PG_FUNCTION_INFO_V1 (ST_DelaunayTriangles)
 
Datum ST_Snap (PG_FUNCTION_ARGS)
 
 PG_FUNCTION_INFO_V1 (ST_Snap)
 
Datum ST_Split (PG_FUNCTION_ARGS)
 
 PG_FUNCTION_INFO_V1 (ST_Split)
 
Datum ST_SharedPaths (PG_FUNCTION_ARGS)
 
 PG_FUNCTION_INFO_V1 (ST_SharedPaths)
 
Datum ST_Node (PG_FUNCTION_ARGS)
 
 PG_FUNCTION_INFO_V1 (ST_Node)
 
Datum ST_Voronoi (PG_FUNCTION_ARGS)
 
 PG_FUNCTION_INFO_V1 (ST_Voronoi)
 
Datum ST_MinimumClearance (PG_FUNCTION_ARGS)
 
 PG_FUNCTION_INFO_V1 (ST_MinimumClearance)
 
Datum ST_MinimumClearanceLine (PG_FUNCTION_ARGS)
 
 PG_FUNCTION_INFO_V1 (ST_MinimumClearanceLine)
 
Datum ST_OrientedEnvelope (PG_FUNCTION_ARGS)
 
 PG_FUNCTION_INFO_V1 (ST_OrientedEnvelope)