Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Vrátí objekt, který představuje všechny body, které jsou buď v jedné instanci geometrie , nebo v jiné instanci geometrie , ale ne ty body, které leží v obou instancích.
Syntax
.STSymDifference ( other_geometry )
Arguments
other_geometry
Je další instance geometrie kromě instance, na které STSymDifference() je vyvolána.
Návratové typy
Návratový typ SQL Serveru: geometrie
Návratový typ CLR: SqlGeometry
Remarks
Tato metoda vždy vrátí hodnotu null, pokud id prostorového odkazu (SRID) instancí geometrie neodpovídají. Výsledek může obsahovat kruhové obloukové segmenty pouze v případě, že vstupní instance obsahují kruhové obloukové segmenty.
Examples
A. Výpočet symetrického rozdílu dvou instancí Polygonu
Následující příklad používá STSymDifference() k výpočtu symetrického rozdílu dvou Polygon instancí.
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. Výpočet symetrického rozdílu mezi CurvePolygonem a instancí Polygonu
Následující příklad vrátí GeometryCollection , který představuje symetrický rozdíl mezi a CurvePolygon a 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. Použití stSymDifference() v instanci CurvePolygon s přiřazenou instancí Polygon
Následující příklad vrátí CurvePolygon instanci s vnitřním Polygon kruhem, který představuje symetrický rozdíl mezi dvěma instancemi ve srovnání.
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();