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.
Konvertiert eine ungültige geometry-Instanz in eine geometry-Instanz mit einem gültigen OGC (Open Geospatial Consortium)-Typ.
Syntax
.MakeValid ()
Rückgabetypen
SQL Server Rückgabetyp: geometry
CLR-Rückgabetyp: SqlGeometry
Hinweise
Diese Methode verursacht möglicherweise eine Änderung des Typs der geometry-Instanz sowie eine leichte Verschiebung der Punkte einer geometry-Instanz.
Beispiele
Im ersten Beispiel wird eine ungültige LineString-Instanz erstellt, die sich selbst überlappt. Mithilfe von STIsValid() wird die Ungültigkeit dieser Instanz bestätigt. STIsValid() gibt für eine ungültige Instanz den Wert 0 (null) zurück.
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(0 2, 1 1, 1 0, 1 1, 2 2)', 0);
SELECT @g.STIsValid();
Im zweiten Beispiel wird die Instanz mit MakeValid() gültig gemacht, und die tatsächliche Gültigkeit wird überprüft. STIsValid() gibt für eine gültige Instanz den Wert 1 zurück.
SET @g = @g.MakeValid();
SELECT @g.STIsValid();
Das dritte Beispiel überprüft, ob die Instanz zu einer gültigen Instanz geändert wurde.
SELECT @g.ToString();
Wenn in diesem Beispiel die LineString-Instanz ausgewählt wird, werden die Werte als gültige MultiLineString-Instanz zurückgegeben.
MULTILINESTRING ((0 2, 1 1, 2 2), (1 1, 1 0))
Im folgenden Beispiel wird eine CircularString-Instanz in eine Point-Instanz konvertiert.
DECLARE @g geometry = 'CIRCULARSTRING(1 1, 1 1, 1 1)';
SELECT @g.MakeValid().ToString();