Sdílet prostřednictvím


STDifference (zeměpisný datový typ)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vrátí objekt, který představuje bod množinu z jedné geografické instance, která leží mimo jinou geografickou instanci.

Syntax

  
.STDifference ( other_geography )  

Arguments

other_geography
Je další geografická instance označující, které body se mají odebrat z instance, na které se vyvolává stDifference().

Návratové typy

Návratový typ SQL Serveru: zeměpisná oblast

Návratový typ CLR: SqlGeography

Exceptions

Tato metoda vyvolá ArgumentException pokud instance obsahuje antipodal edge.

Remarks

Tato metoda vždy vrátí hodnotu null, pokud identifikátory prostorového odkazu (SRID) zeměpisných instancí neodpovídají.

V SQL Serveru byla sada možných výsledků vrácených na serveru rozšířena na instance FullGlobe . SQL Server podporuje prostorové instance, které jsou větší než polokoule. Výsledek může obsahovat kruhové obloukové segmenty pouze v případě, že vstupní instance obsahují kruhové obloukové segmenty. Tato metoda není přesná.

Examples

A. Výpočet rozdílu mezi dvěma zeměpisnými instancemi

Následující příklad používá STDifference() k výpočtu rozdílu mezi dvěma geografickými instancemi.

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. Použití FullGlobe s STDifference()

Následující příklad používá FullGlobe instanci. První výsledek je prázdný GeometryCollection a druhý výsledek je Polygon instance. STDifference() vrátí prázdnou GeometryCollectionFullGlobe hodnotu, pokud je parametrem instance. Každý bod v vyvolání geography instance je obsažen v FullGlobe instanci.

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

Viz také

Metody OGC v geografických instancích