Udostępnij przez


StDifference (typ danych geograficznych)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza 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();

Zobacz też

Metody OGC w wystąpieniach geograficznych