title | description | author | ms.author | ms.date | ms.service | ms.subservice | ms.topic | ms.custom | f1_keywords | helpviewer_keywords | dev_langs | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
STDifference (geography Data Type) |
STDifference (geography Data Type) |
MladjoA |
mlandzic |
03/14/2017 |
sql |
t-sql |
reference |
|
|
|
|
[!INCLUDE SQL Server Azure SQL Database Azure SQL Managed Instance FabricSQLDB]
Returns an object that represents the point set from one geography instance that lies outside another geography instance.
.STDifference ( other_geography )
other_geography
Is another geography instance indicating which points to remove from the instance on which STDifference() is being invoked.
[!INCLUDEssNoVersion] return type: geography
CLR return type: SqlGeography
This method throws an ArgumentException if the instance contains an antipodal edge.
This method always returns null if the spatial reference identifiers (SRIDs) of the geography instances do not match.
In [!INCLUDEssNoVersion], the set of possible results returned on the server has been extended to FullGlobe instances. [!INCLUDEssNoVersion] supports spatial instances that are larger than a hemisphere. The result may contain circular arc segments only if the input instances contain circular arc segments. This method is not precise.
The following example uses STDifference()
to compute the difference between two geography instances.
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();
The following example uses FullGlobe
instance. The first result is an empty GeometryCollection
and the second result is a Polygon
instance. STDifference()
returns an empty GeometryCollection
when a FullGlobe
instance is the parameter. Every point in an invoking geography
instance is contained in a FullGlobe
instance.
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();