Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
SQL-Datenbank in Microsoft Fabric
Gibt ein Objekt zurück, das die Punktmenge einer geography -Instanz darstellt, die sich außerhalb einer anderen geography -Instanz befindet.
Syntax
.STDifference ( other_geography )
Arguments
other_geography
Eine andere geography-Instanz, die angibt, welche Punkte aus der Instanz zu entfernen sind, in der STDifference() aufgerufen wird.
Rückgabetypen
SQL Server-Rückgabetyp: geography
CLR-Rückgabetyp: SqlGeography
Exceptions
Diese Methode löst eine ArgumentException aus, wenn die Instanz eine gegenüberliegende Kante enthält.
Remarks
Diese Methode gibt immer NULL zurück, wenn die SRIDs (Spatial Reference IDs) der geography -Instanzen nicht übereinstimmen.
In SQL Server wurden die Ergebnisse, die auf dem Server zurückgegeben werden können, um FullGlobe-Instanzen erweitert. SQL Server unterstützt räumliche Instanzen, die größer als eine Hemisphäre sind. Im Ergebnis können nur dann Kreisbogensegmente enthalten sein, wenn die Eingabeinstanzen auch Kreisbogensegmente enthalten. Diese Methode ist nicht exakt.
Examples
A. Berechnen des Unterschiedes zwischen zwei geography-Instanzen
Im folgenden Beispiel wird STDifference() zum Berechnen der Differenz zwischen zwei geography -Instanzen erweitert.
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.STDifference(@h).ToString();
B. Verwenden eines FullGlobe mit STDifference()
Im folgenden Beispiel wird eine Instanz von FullGlobe verwendet. Das erste Ergebnis ist eine leere GeometryCollection , und das zweite Ergebnis ist eine Polygon -Instanz.
STDifference() gibt eine leere GeometryCollection zurück, wenn der Parameter eine FullGlobe-Instanz ist. Alle Punkte in einer aufrufenden Instanz von geography sind in einer Instanz von FullGlobe enthalten.
DECLARE @g geography = 'POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
DECLARE @h geography = 'FULLGLOBE';
SELECT @g.STDifference(@h).ToString(),
@h.STDifference(@g).ToString();