STSymDifference (tipo de datos geography)
Devuelve un objeto que representa todos los puntos que están en una instancia de geography o en otra instancia de geography, pero no los puntos que pertenecen a ambas instancias.
Sintaxis
.STSymDifference ( other_geography )
Argumentos
- other_geography
Es la otra instancia de geography que se va a comparar con la instancia en la que se invoca STSymDistance().
Tipos de valores devueltos
SQL Server tipo de valor devuelto: geography
Tipo de valor devuelto de CLR: SqlGeography
Comentarios
Este método siempre devuelve NULL si no coinciden los identificadores de referencia espacial (SRID) de las instancias de geography.
SQL Server admite instancias espaciales mayores que un hemisferio. En SQL Server, el conjunto de resultados posibles en el servidor se ha ampliado a las instancias de FullGlobe.
El resultado puede contener segmentos de arco circulares solo si las instancias de entrada contienen segmentos de arco circulares.
Ejemplos
A.Calcular la diferencia simétrica de dos polígonos
En el ejemplo siguiente se utiliza STSymDifference() para calcular la diferencia simétrica entre dos instancias de 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.Calcular la diferencia simétrica con FullGlobe
En el siguiente ejemplo se compara la diferencia simétrica de un Polygon con 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();