ST_SymDifference — Calcule une géométrie représentant les parties des géométries A et B qui ne s'intersectent pas.
geometry ST_SymDifference(
geometry geomA, geometry geomB, float8 gridSize = -1)
;
Renvoie une géométrie représentant les parties des géométries A et B qui ne s'intersectent pas. Ceci est équivalent à ST_Union(A,B) - ST_Intersection(A,B)
. On parle de différence symétrique car ST_SymDifférence(A,B) = ST_SymDifférence(B,A)
.
Si l'argument optionnel gridSize
est fourni, les entrées sont placées sur une grille de la taille donnée, et les sommets du résultat sont calculés sur cette même grille. (Nécessite GEOS-3.9.0 ou plus)
Effectué par le module GEOS
Enhanced: 3.1.0 accept a gridSize parameter.
Requires GEOS >= 3.9.0 to use the gridSize parameter
Cette méthode implémente la spécification OGC Simple Features Implementation Specification for SQL 1.1.
s2.1.1.3
Cette méthode implémente la spécification SQL/MM.
SQL-MM 3: 5.1.21
Cette fonction prend en charge la 3D et ne supprime pas l'indice z.
Cependant, le résultat est calculé en utilisant uniquement XY. Les valeurs Z résultantes sont copiées, moyennées ou interpolées.
|
|
--Safe for 2d - symmetric difference of 2 linestrings SELECT ST_AsText( ST_SymDifference( ST_GeomFromText('LINESTRING(50 100, 50 200)'), ST_GeomFromText('LINESTRING(50 50, 50 150)') ) ); st_astext --------- MULTILINESTRING((50 150,50 200),(50 50,50 100))
--When used in 3d doesn't quite do the right thing SELECT ST_AsEWKT(ST_SymDifference(ST_GeomFromEWKT('LINESTRING(1 2 1, 1 4 2)'), ST_GeomFromEWKT('LINESTRING(1 1 3, 1 3 4)'))) st_astext ------------ MULTILINESTRING((1 3 2.75,1 4 2),(1 1 3,1 2 2.25))