26 #if POSTGIS_GEOS_VERSION < 31300
45 int cluster_intersecting(GEOSGeometry **geoms, uint32_t num_geoms, GEOSGeometry ***clusterGeoms, uint32_t *num_clusters);
59 #if POSTGIS_DEBUG_LEVEL > 0
63 #define LWDEBUGGEOS(level, geom, msg) \
64 if (POSTGIS_DEBUG_LEVEL >= level) \
66 GEOSWKTWriter *wktwriter = GEOSWKTWriter_create(); \
67 char *wkt = GEOSWKTWriter_write(wktwriter, (geom)); \
68 LWDEBUGF(1, msg " (GEOS): %s", wkt); \
70 GEOSWKTWriter_destroy(wktwriter); \
77 #define LWDEBUGGEOS(level, geom, msg) \
GEOSGeometry * GBOX2GEOS(const GBOX *g)
GEOSGeometry * make_geos_point(double x, double y)
void(*) LWGEOM GEOS2LWGEOM)(const GEOSGeometry *geom, uint8_t want3d)
GEOSGeometry * LWGEOM2GEOS(const LWGEOM *g, uint8_t autofix)
void(* GEOSMessageHandler)(const char *fmt,...) __attribute__((format(printf
int cluster_within_distance(LWGEOM **geoms, uint32_t num_geoms, double tolerance, LWGEOM ***clusterGeoms, uint32_t *num_clusters)
Takes an array of LWGEOM* and constructs an array of LWGEOM*, where each element in the constructed a...
int union_intersecting_pairs(GEOSGeometry **geoms, uint32_t num_geoms, UNIONFIND *uf)
GEOSGeometry * make_geos_segment(double x1, double y1, double x2, double y2)
void lwgeom_geos_error(const char *fmt,...) __attribute__((format(printf
int cluster_intersecting(GEOSGeometry **geoms, uint32_t num_geoms, GEOSGeometry ***clusterGeoms, uint32_t *num_clusters)
Takes an array of GEOSGeometry* and constructs an array of GEOSGeometry*, where each element in the c...
char lwgeom_geos_errmsg[]
POINTARRAY * ptarray_from_GEOSCoordSeq(const GEOSCoordSequence *cs, uint8_t want3d)
int union_dbscan(LWGEOM **geoms, uint32_t num_geoms, UNIONFIND *uf, double eps, uint32_t min_points, char **is_in_cluster_ret)
This library is the generic geometry handling section of PostGIS.