STIntersection (geography-Datentyp)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Gibt ein Objekt zurück, das die Punkte darstellt, an denen eine geography-Instanz eine andere geography-Instanz überschneidet.

Syntax

  
.STIntersection ( other_geography )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

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 FullGlobeverglichen.

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();  

Weitere Informationen

OGC-Methoden für geography-Instanzen