STSymDifference (geography-Datentyp)
Gibt ein Objekt zurück, das alle Punkte darstellt, die sich entweder in einer geography-Instanz oder in einer anderen geography-Instanz befinden, nicht jedoch die Punkte, die sich innerhalb beider Instanzen befinden.
Syntax
.STSymDifference ( other_geography )
Argumente
- other_geography
Eine andere geography-Instanz zusätzlich zu der Instanz, in der STSymDistance() aufgerufen wird.
Rückgabetypen
SQL Server Rückgabetyp: geography
CLR-Rückgabetyp: SqlGeography
Hinweise
Diese Methode gibt immer NULL zurück, wenn die SRIDs (Spatial Reference IDs) der geography-Instanzen nicht übereinstimmen.
SQL Server unterstützt räumliche Instanzen, die größer als eine Hemisphäre sind. In SQL Server wurden die Ergebnisse, die auf dem Server zurückgegeben werden können, um FullGlobe-Instanzen erweitert.
Im Ergebnis können nur dann Kreisbogensegmente enthalten sein, wenn die Eingabeinstanzen auch Kreisbogensegmente enthalten.
Beispiele
A.Berechnen des symmetrischen Unterschieds zweier Polygone
Im folgenden Beispiel wird STSymDifference() zum Berechnen der symmetrischen Differenz zweier Polygon-Instanzen verwendet.
DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);
SET @h = geography::STGeomFromText('POLYGON((-122.351 47.656, -122.341 47.656, -122.341 47.661, -122.351 47.661, -122.351 47.656))', 4326);
SELECT @g.STSymDifference(@h).ToString();
B.Berechnen des symmetrischen Unterschieds mit FullGlobe
Im folgenden Beispiel wird der symmetrische Unterschied eines Polygon und eines FullGlobe verglichen.
DECLARE @g geography = 'POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
SELECT @g.STSymDifference('FULLGLOBE').ToString();