STIntersection (geography-Datentyp)
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
Hinweise
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. Das potenzielle Resultset von SQL Server auf dem Server kann Instanzen von FullGlobe enthalten.
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();