Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Zwraca obiekt reprezentujący zestaw punktów z jednego wystąpienia geograficznego znajdującego się poza innym wystąpieniem geograficznym .
Syntax
.STDifference ( other_geography )
Arguments
other_geography
Jest innym wystąpieniem geograficznym wskazującym, które punkty należy usunąć z wystąpienia, w którym wywoływana jest stDifference().
Typy zwracane
Typ zwracany programu SQL Server: lokalizacja geograficzna
Typ zwracany CLR: SqlGeography
Exceptions
Ta metoda zgłasza wyjątek ArgumentException , jeśli wystąpienie zawiera krawędź antypodalną.
Remarks
Ta metoda zawsze zwraca wartość null, jeśli identyfikatory odwołań przestrzennych (SRID) wystąpień geograficznych nie są zgodne.
W programie SQL Server zestaw możliwych wyników zwróconych na serwerze został rozszerzony na wystąpienia FullGlobe . Program SQL Server obsługuje wystąpienia przestrzenne, które są większe niż półkula. Wynik może zawierać segmenty łuku cyklicznego tylko wtedy, gdy wystąpienia wejściowe zawierają segmenty łuku cyklicznego. Ta metoda nie jest dokładna.
Examples
A. Obliczanie różnicy między dwoma wystąpieniami geograficznymi
W poniższym przykładzie użyto STDifference() metody do obliczenia różnicy między dwoma wystąpieniami geograficznymi .
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. Używanie elementu FullGlobe ze stDifference()
W poniższym przykładzie użyto FullGlobe wystąpienia. Pierwszy wynik jest pusty GeometryCollection , a drugim wynikiem jest Polygon wystąpienie.
STDifference() zwraca wartość pustą GeometryCollection , gdy FullGlobe wystąpienie jest parametrem . Każdy punkt w wystąpieniu wywołującym geography jest zawarty w wystąpieniu FullGlobe .
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();