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
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();