Partager via


MakeValid (type de données geometry)

Convertit une instance geometry non valide en une instance geometry avec un type Open Geospatial Consortium (OGC) valide.

Syntaxe

.MakeValid ()

Types des valeurs de retour

Type de retour SQL Server : geometry

Type de retour CLR : SqlGeometry

Notes

Cette méthode peut provoquer une modification du type de l'instance geometry et provoquer un léger décalage des points d'une instance geometry.

Exemples

Le premier exemple crée une instance LineString non valide qui se chevauche elle-même et utilise STIsValid() pour confirmer qu'il s'agit d'une instance non valide. STIsValid() renvoie la valeur 0 pour une instance non valide.

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

Le deuxième exemple utilise MakeValid() pour rendre l'instance valide et tester que l'instance est effectivement valide. STIsValid() renvoie la valeur 1 pour une instance valide.

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

Le troisième exemple vérifie comment l'instance a été modifiée pour en faire une instance valide.

SELECT @g.ToString();

Dans cet exemple, lorsque l'instance LineString est sélectionnée, les valeurs sont retournées en tant qu'instance MultiLineString valide.

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