Megosztás a következőn keresztül:


STDifference (geometriai adattípus)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Egy olyan objektumot ad vissza, amely egy olyan geometriai példány pontkészletét jelöli, amely nem egy másik geometriai példányban található.

Syntax

  
.STDifference ( other_geometry )  

Arguments

other_geometry
Egy másik geometriai példány, amely azt jelzi, hogy mely pontok távolíthatók el a meghívandó példányból STDifference() .

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 közötti különbség kiszámítása

Az alábbi példa két sokszög közötti különbség kiszámítására használható STDifference() .

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.STDifference(@h).ToString();  

B. STDifference() meghívása CurvePolygon-példányon

Az alábbi példa STDifference() függvényt használ egy CurvePolygon-példányon.

 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))';  
 -- Note the different results returned by the two SELECT statements  
 SELECT @h.STDifference(@g).ToString(), @g.STDifference(@h).ToString();

Lásd még:

geometriai példányok OGC-metódusai