STSymDifference (tipo di dati geography)
Restituisce un oggetto che rappresenta tutti i punti che si trovano in un'istanza geography o un'altra istanza geography, ma non i punti che si trovano in entrambe le istanze.
Sintassi
.STSymDifference ( other_geography )
Argomenti
- other_geography
Altra istanza geography oltre all'istanza sulla quale STSymDistance() viene richiamato.
Tipi restituiti
SQL Server tipo restituito: geography
Tipo CLR restituito: SqlGeography
Osservazioni
Questo metodo restituisce sempre Null se gli identificatori SRID delle istanze geography non corrispondono.
SQL Server supporta le istanze spaziali di dimensioni maggiori di un emisfero. In SQL Server, il set di possibili risultati nel server è stato esteso alle istanze FullGlobe.
Il risultato può contenere segmenti di arco circolare solo se le istanze di input contengono segmenti di arco circolare.
Esempi
A.Calcolo della differenza simmetrica di due poligoni
Nell'esempio seguente viene utilizzato STSymDifference() per calcolare la differenza simmetrica tra due istanze Polygon.
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.Calcolo della differenza simmetrica con FullGlobe
Nell'esempio seguente viene confrontata la differenza simmetrica di Polygon a FullGlobe.
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();