Skip to content

ST_SymDifference

Returns the parts of geometries or geographies A and B that do not overlap.

Usage

geometry ST_SymDifference(geomA: geometry, geomB: geometry)
geography ST_SymDifference(geogA: geography, geogB: geography)

Arguments

  • geogA (geography): Input geography
  • geogB (geography): Input geography
  • geomA (geometry): Input geometry
  • geomB (geometry): Input geometry

Examples

SELECT ST_SymDifference(
    ST_GeomFromWKT('POLYGON ((0 0, 2 0, 2 2, 0 2, 0 0))'),
    ST_GeomFromWKT('POLYGON ((1 0, 3 0, 3 2, 1 2, 1 0))')
);
┌──────────────────────────────────────────────────────────────────────────────┐
│ st_symdifference(st_geomfromwkt(Utf8("POLYGON ((0 0, 2 0, 2 2, 0 2, 0 0))")) │
│        ,st_geomfromwkt(Utf8("POLYGON ((1 0, 3 0, 3 2, 1 2, 1 0))")))…        │
╞══════════════════════════════════════════════════════════════════════════════╡
│ MULTIPOLYGON(((0 0,0 2,1 2,1 0,0 0)),((2 2,3 2,3 0,2 0,2 2)))                │
└──────────────────────────────────────────────────────────────────────────────┘
SELECT ST_SymDifference(
    ST_GeogFromWKT('POLYGON ((0 0, 2 0, 2 2, 0 2, 0 0))'),
    ST_GeogFromWKT('POLYGON ((1 0, 3 0, 3 2, 1 2, 1 0))')
);
┌──────────────────────────────────────────────────────────────────────────────┐
│ st_symdifference(st_geogfromwkt(Utf8("POLYGON ((0 0, 2 0, 2 2, 0 2, 0 0))")) │
│        ,st_geogfromwkt(Utf8("POLYGON ((1 0, 3 0, 3 2, 1 2, 1 0))")))…        │
╞══════════════════════════════════════════════════════════════════════════════╡
│ MULTIPOLYGON(((0.9999999999999998 2,1.4999999999999036 2.0002283050233185,0… │
└──────────────────────────────────────────────────────────────────────────────┘