Condividi tramite


MakeValid (tipo di dati geometry)

Converte un'istanza geometry non valida in un'istanza geometry con un tipo OGC (Open Geospatial Consortium) valido.

Sintassi

.MakeValid ()

Tipi restituiti

Tipo SQL Server restituito: geometry

Tipo CLR restituito: SqlGeometry

Osservazioni

Questo metodo può provocare una modifica nel tipo dell'istanza geometry, nonché provocare un leggero spostamento dei punti di un'istanza geometry.

Esempi

Nel primo esempio viene creata un'istanza LineString non valida che si sovrappone e viene utilizzato STIsValid() per confermare che tale istanza non è valida. STIsValid() restituisce il valore 0 per un'istanza non valida.

DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(0 2, 1 1, 1 0, 1 1, 2 2)', 0);
SELECT @g.STIsValid();

Nel secondo esempio viene utilizzato MakeValid() per rendere valida l'istanza e per verificarne l'effettiva validità. STIsValid() restituisce il valore 1 per un'istanza valida.

SET @g = @g.MakeValid();
SELECT @g.STIsValid();

Nel terzo esempio viene verificato il modo in cui l'istanza è stata modificata per renderla valida.

SELECT @g.ToString();

In questo esempio, quando l'istanza LineString è selezionata, i valori vengono restituiti come un'istanza MultiLineString valida.

MULTILINESTRING ((0 2, 1 1, 2 2), (1 1, 1 0))