STSymDifference (tipo de datos geography)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Base de datos de Azure SQL de Microsoft Fabric
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 otra instancia de geography, además de la instancia en la que se invoca a STSymDistance().
Tipos de valor devuelto
Tipo de valor devuelto de SQL Server: geography
Tipo de valor devuelto de CLR: SqlGeography
Observaciones
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();