Freigeben über


MakeValid (geometry-Datentyp)

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

Siehe auch

Verweis

STIsValid (geometry-Datentyp)

Andere Ressourcen

Erweiterte Methoden für geometry-Instanzen