Freigeben über


MakeValid (geometry-Datentyp)

Konvertiert eine ungültige geometry-Instanz in eine geometry-Instanz mit einem gültigen Open Geospatial-Consortium (OGC)-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 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 MakeValid() verwendet, um die Instanz gültig zu machen und zu überprüfen, ob die Instanz tatsächlich gültig ist. 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))