872 GEOSGeometry *g1, *g2, *g3;
886 srid = (int)(geom1->
srid);
906 GEOSGeom_destroy(g1);
910 g3 = GEOSSymDifference(g1,g2);
914 GEOSGeom_destroy(g1);
915 GEOSGeom_destroy(g2);
920 LWDEBUGF(3,
"result: %s", GEOSGeomToWKT(g3));
922 GEOSSetSRID(g3, srid);
928 GEOSGeom_destroy(g1);
929 GEOSGeom_destroy(g2);
930 GEOSGeom_destroy(g3);
931 lwerror(
"GEOS symdifference() threw an error (result postgis geometry formation)!");
935 GEOSGeom_destroy(g1);
936 GEOSGeom_destroy(g2);
937 GEOSGeom_destroy(g3);
void lwnotice(const char *fmt,...)
Write a notice out to the notice handler.
char lwgeom_geos_errmsg[LWGEOM_GEOS_ERRMSG_MAXSIZE]
LWGEOM * lwgeom_clone_deep(const LWGEOM *lwgeom)
Deep clone an LWGEOM, everything is copied.
void error_if_srid_mismatch(int srid1, int srid2)
void lwgeom_geos_error(const char *fmt,...)
#define FLAGS_GET_Z(flags)
Macros for manipulating the 'flags' byte.
GEOSGeometry * LWGEOM2GEOS(const LWGEOM *lwgeom, int autofix)
LWGEOM * GEOS2LWGEOM(const GEOSGeometry *geom, char want3d)
int lwgeom_is_empty(const LWGEOM *geom)
Return true or false depending on whether a geometry is an "empty" geometry (no vertices members) ...
#define LWDEBUGF(level, msg,...)
void lwerror(const char *fmt,...)
Write a notice out to the error handler.