842{
846 GEOSGeometry *g1, *g2, *g3;
847
849
850
852
853
855
857
860
861 if ( prec >= 0) {
862#if POSTGIS_GEOS_VERSION < 30900
865 return NULL;
866#else
867 g3 = GEOSDifferencePrec(g1, g2, prec);
868#endif
869 }
870 else
871 {
872 g3 = GEOSDifference(g1, g2);
873 }
874
876 GEOSSetSRID(g3, srid);
877
880
883}
char result[OUT_DOUBLE_BUFFER_SIZE]
void lwgeom_geos_error_minversion(const char *functionality, const char *minver)
GEOSGeometry * LWGEOM2GEOS(const LWGEOM *lwgeom, uint8_t autofix)
#define GEOS_FREE_AND_FAIL(...)
void lwgeom_geos_error(const char *fmt,...)
void(*) LWGEOM GEOS2LWGEOM)(const GEOSGeometry *geom, uint8_t want3d)
#define FLAGS_GET_Z(flags)
LWGEOM * lwgeom_clone_deep(const LWGEOM *lwgeom)
Deep clone an LWGEOM, everything is copied.
void lwnotice(const char *fmt,...) __attribute__((format(printf
Write a notice out to the notice handler.
static int lwgeom_is_empty(const LWGEOM *geom)
Return true or false depending on whether a geometry is an "empty" geometry (no vertices members)