PostGIS
Name
ST_Difference — Computes a geometry representing the part of geometry A that does not intersect geometry B.
Description
Returns a geometry representing the part of geometry A that does not
intersect geometry B. This is equivalent to
A - ST_Intersection(A,B)
. If A is completely contained in B then an
empty atomic geometry of appropriate type is returned.
|
If the optional gridSize
argument is provided, the inputs are
snapped to a grid of the given size, and the result vertices are
computed on that same grid. (Requires GEOS-3.9.0 or higher)
Performed by the GEOS module
Enhanced: 3.1.0 accept a gridSize parameter.
Requires GEOS >= 3.9.0 to use the gridSize parameter.
[.inlinemediaobject] This method implements the OGC Simple Features Implementation Specification for SQL 1.1.
s2.1.1.3
This method implements the SQL/MM specification.
SQL-MM 3: 5.1.20
This function supports 3d and will not drop the z-index.
However, the result is computed using XY only. The result Z values are copied, averaged or interpolated.
Examples
The input linestrings |
The difference of the two linestrings |
The difference of 2D linestrings.
SELECT ST_AsText(
ST_Difference(
'LINESTRING(50 100, 50 200)'::geometry,
'LINESTRING(50 50, 50 150)'::geometry
)
);
st_astext
---------
LINESTRING(50 150,50 200)
The difference of 3D points.
SELECT ST_AsEWKT( ST_Difference(
'MULTIPOINT(-118.58 38.38 5,-118.60 38.329 6,-118.614 38.281 7)' :: geometry,
'POINT(-118.614 38.281 5)' :: geometry
) );
st_asewkt
---------
MULTIPOINT(-118.6 38.329 6,-118.58 38.38 5)