Freigeben über


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

Siehe auch

Andere Ressourcen

OGC-Methoden für geography-Instanzen