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


STDifference (földrajzi 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 másik földrajzi példányon kívüli földrajzi példányból származó ponthalmazt jelöli.

Syntax

  
.STDifference ( other_geography )  

Arguments

other_geography
Egy másik földrajzi példány, amely azt jelzi, hogy mely pontok legyenek eltávolítva abból a példányból, amelyen az STDifference() meghívása történik.

Visszatérési típusok

SQL Server visszatérési típusa: földrajzi hely

CLR visszatérési típusa: SqlGeography

Exceptions

Ez a metódus ArgumentumException értéket ad, ha a példány antipodális élet tartalmaz.

Remarks

Ez a módszer mindig null értéket ad vissza, ha a földrajzi példányok térbeli referenciaazonosítói (SRID-k) nem egyeznek.

Az SQL Serverben a kiszolgálón visszaadott lehetséges eredmények halmazát kiterjesztették a FullGlobe-példányokra . Az SQL Server támogatja a félgömbnél nagyobb térbeli példányokat. Az eredmény csak akkor tartalmazhat körkörös ívszegmenseket, ha a bemeneti példányok körkörös ívszegmenseket tartalmaznak. Ez a módszer nem pontos.

Examples

A. Két földrajzi példány közötti különbség kiszámítása

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

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('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);  
SELECT @g.STDifference(@h).ToString();  

B. FullGlobe használata STDifference() használatával

Az alábbi példa a példányt használja FullGlobe . Az első eredmény egy üres GeometryCollection , a második pedig egy Polygon példány. STDifference() üres GeometryCollection értéket ad vissza, ha egy FullGlobe példány a paraméter. Az invokáló geography példányok minden pontja egy FullGlobe példányban található.

 DECLARE @g geography = 'POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
 DECLARE @h geography = 'FULLGLOBE';  
 SELECT @g.STDifference(@h).ToString(),  
 @h.STDifference(@g).ToString();

Lásd még:

OGC-metódusok a földrajzi példányokon