STIntersection (geography-Datentyp)
Gilt für: SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
SQL-Datenbank in Microsoft Fabric
Gibt ein Objekt zurück, das die Punkte darstellt, an denen eine geography-Instanz eine andere geography-Instanz überschneidet.
Syntax
.STIntersection ( other_geography )
Argumente
other_geography
Eine andere geography-Instanz, die mit der Instanz verglichen werden soll, für die STIntersection() aufgerufen wird.
Rückgabetypen
SQL Server-Rückgabetyp: geography
CLR-Rückgabetyp: SqlGeography
Bemerkungen
Die Schnittmenge von zwei geography-Instanzen wird zurückgegeben.
STIntersection() 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 gehören möglicherweise auch FullGlobe-Instanzen zu den Ergebnissen, die auf dem Server zurückgegeben werden.
Im Ergebnis können nur dann Kreisbogensegmente enthalten sein, wenn die Eingabeinstanzen auch Kreisbogensegmente enthalten.
Beispiele
A. Berechnen der Schnittmenge eines Polygons und eines LineStrings
Im folgenden Beispiel wird STIntersection()
verwendet, um die Schnittmenge einer Polygon
-Instanz mit einer LineString
-Instanz zu berechnen.
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.STIntersection(@h).ToString();
B. Berechnen der Schnittmenge eines Polygons und eines CurvePolygons
Im folgenden Beispiel wird eine Instanz zurückgegeben, die ein Kreisbogensegment enthält.
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('CURVEPOLYGON(CIRCULARSTRING(-122.351 47.656, -122.341 47.656, -122.341 47.661, -122.351 47.661, -122.351 47.656))', 4326);
SELECT @g.STIntersection(@h).ToString();
C. Berechnen des symmetrischen Unterschieds mit FullGlobe
Im folgenden Beispiel wird der symmetrische Unterschied eines Polygon
und eines FullGlobe
verglichen.
DECLARE @g geography = 'POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
SELECT @g.STIntersection('FULLGLOBE').ToString();