Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Olyan objektumot ad vissza, amely az egyik vagy egy másik geometriai példányban található összes pontot jelöli, de nem azokat a pontokat, amelyek mindkét példányban találhatók.
Syntax
.STSymDifference ( other_geometry )
Arguments
other_geometry
A meghívandó példányon kívül egy másik geometriai példány STSymDifference() is.
Visszatérési típusok
SQL Server visszatérési típusa: geometria
CLR visszatérési típus: SqlGeometry
Remarks
Ez a módszer mindig null értéket ad vissza, ha a geometriai példányok térbeli referenciaazonosítói (SRID-k) nem egyeznek. Az eredmény csak akkor tartalmazhat körkörös ívszegmenseket, ha a bemeneti példányok körkörös ívszegmenseket tartalmaznak.
Examples
A. Két sokszögpéldány szimmetrikus különbségének kiszámítása
Az alábbi példa két STSymDifference() példány szimmetrikus különbségének kiszámítására használjaPolygon.
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. A CurvePolygon és a Sokszög példány közötti szimmetrikus különbség kiszámítása
Az alábbi példa egy olyan értéket GeometryCollection ad vissza, amely az a CurvePolygon és a közötti szimmetrikus különbséget Polygonjelöli.
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. STSymDifference() használata CurvePolygon-példányon egy beírt sokszögpéldánysal
Az alábbi példa egy CurvePolygon belső Polygon gyűrűvel rendelkező példányt ad vissza, amely a két összehasonlított példány közötti szimmetrikus különbséget jelöli.
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();