STUnion (geography Data Type)


THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Returns an object that represents the union of a geography instance with another geography instance.

.STUnion ( other_geography )  

Is another geography instance to form a union with the instance on which STUnion() is being invoked.

SQL Server 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.

SQL Server supports spatial instances that are larger than a hemisphere. In SQL Server, the set of possible results returned on the server has been extended to FullGlobe instances.

The result may contain circular arc segments only if the input instances contain circular arc segments.

This method is not precise.

A. Computing the union of two polygons

The following example uses STUnion() to compute the union of two Polygon 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('POLYGON((-122.351 47.656, -122.341 47.656, -122.341 47.661, -122.351 47.661, -122.351 47.656))', 4326);  
SELECT @g.STUnion(@h).ToString();  

B. Producing a FullGlobe result

The following example produces a FullGlobe when STUnion() combines two Polygon instances.

DECLARE @g geography = 'POLYGON ((-122.358 47.653, -122.358 47.658,-122.348 47.658, -122.348 47.649, -122.358 47.653))';

DECLARE @h geography = 'POLYGON ((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';

SELECT @g.STUnion(@h).ToString();

C. Producing a triagonal hole from a union of a CurvePolygon and a traigonal hole.

The following example produces a triagonal hole from the union of a CurvePolygon with a Polygon instance.

DECLARE @g geography = 'POLYGON ((-0.5 0, 0 1, 0.5 0.5, -0.5 0))';

DECLARE @h geography = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0, 0.7 0.7, 0 1), (0 1, 0 0)))';

SELECT @g.STUnion(@h).ToString();

OGC Methods on Geography Instances

Community Additions