STUnion (geography-Datentyp)
Gibt ein Objekt zurück, das die Vereinigung einer geography-Instanz mit einer weiteren geography-Instanz darstellt.
Syntax
.STUnion ( other_geography )
Argumente
- other_geography
Eine andere geography-Instanz zur Vereinigung mit der Instanz, in der STUnion() aufgerufen wird.
Rückgabetypen
SQL Server Rückgabetyp: geography
CLR-Rückgabetyp: SqlGeography
Ausnahmen
Diese Methode löst eine ArgumentException aus, wenn die Instanz eine gegenüberliegende Kante enthält.
Hinweise
Diese Methode gibt immer NULL zurück, wenn die SRIDs (Spatial Reference IDs) der geography-Instanzen nicht übereinstimmen.
SQL Server unterstützt räumliche Instanzen, die größer als eine Hemisphäre sind. In SQL Server wurden die Ergebnisse, die auf dem Server zurückgegeben werden können, um FullGlobe-Instanzen erweitert.
Im Ergebnis können nur dann Kreisbogensegmente enthalten sein, wenn die Eingabeinstanzen auch Kreisbogensegmente enthalten.
Diese Methode ist nicht exakt.
Beispiele
A.Berechnen der Vereinigungsmenge zweier Polygone
Im folgenden Beispiel wird STUnion() zum Berechnen der Vereinigung zweier Polygon-Instanzen verwendet.
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.Erzeugen eines FullGlobe-Ergebnisses
Im folgenden Beispiel wird ein FullGlobe erzeugt, wenn von STUnion() zwei Polygon-Instanzen kombiniert werden.
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.Erzeugen eines dreieckigen Lochs aus der Vereinigungsmenge eines CurvePolygons und eines dreieckigen Lochs.
Im folgenden Beispiel wird ein dreieckiges Loch aus der Vereinigungsmenge eines CurvePolygon und einer Polygon-Instanz erzeugt.
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();