STSymDifference (type de données geometry)
Retourne un objet qui représente tous les points qui sont soit une instance geometry soit dans une autre instance geometry, mais pas les points qui se trouvent dans les deux instances.
Syntaxe
.STSymDifference ( other_geometry )
Arguments
- other_geometry
Autre instance geometry en plus de l'instance sur laquelle STSymDistance() est appelée.
Types de retour
SQL Server type de retour : geometry
Type de retour CLR : SqlGeometry
Notes
Cette méthode retourne toujours Null si les ID de référence spatiaux (SRID) des instances geometry ne correspondent pas. Le résultat peut contenir des segments d'arc de cercle uniquement si les instances d'entrée contiennent des segments d'arc de cercle.
Exemples
A.Calcul de la différence symétrique de deux instances Polygon
L'exemple suivant utilise STSymDifference() pour calculer la différence symétrique entre deux instances Polygon.
DECLARE @g geometry;
DECLARE @h geometry;
SET @g = geometry::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 0);
SET @h = geometry::STGeomFromText('POLYGON((1 1, 3 1, 3 3, 1 3, 1 1))', 0);
SELECT @g.STSymDifference(@h).ToString();
B.Calcul de la différence symétrique entre une instance CurvePolygon et une instance Polygon
L'exemple suivant retourne un GeometryCollection qui représente la différence symétrique entre un CurvePolygon et un Polygon.
DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';
DECLARE @h geometry = 'POLYGON ((1 -1, 5 -1, 5 3, 1 3, 1 -1))';
SELECT @h.STSymDifference(@g).ToString();
C.Utilisation de STSymDifference() sur une instance CurvePolygon avec une instance Polygon inscrite
L'exemple suivant retourne une instance CurvePolygon avec un anneau Polygon intérieur qui représente la différence symétrique entre les deux instances comparées.
DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';
DECLARE @h geometry = 'POLYGON ((1 -1, 2 -1, 2 1, 1 1, 1 -1))';
SELECT @h.STSymDifference(@g).ToString();