Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL 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();