893{
897 GEOSGeometry *g1, *g2, *g3;
898
900
901
903
904
906
908
911
912 if ( prec >= 0) {
913#if POSTGIS_GEOS_VERSION < 30900
916 return NULL;
917#else
918 g3 = GEOSSymDifferencePrec(g1, g2, prec);
919#endif
920 }
921 else
922 {
923 g3 = GEOSSymDifference(g1, g2);
924 }
925
927 GEOSSetSRID(g3, srid);
928
931
934}
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)