Partager via


MakeValid (type de données geography)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

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

Si un objet d’entrée retourne False pour STIsValid(), MakeValid() convertit l’instance non valide en instance valide.

Cette méthode de type de données geography prend en charge les instances FullGlobe ou les instances spatiales qui sont plus grandes qu’un hémisphère.

Syntaxe

  
.MakeValid ()  

Types de retour

Type de retour SQL Server : geography

Type de retour CLR : SqlGeography

Notes

Cette méthode peut changer le type de l’instance geography. De plus, les points d’une instance geography peuvent se déplacer légèrement. Les résultats de certaines méthodes telles que NumPoint() peuvent changer.

Dans les cas où l’instance spatiale non valide croise l’équateur et où EnvelopeAngle() = 180, une instance FullGlobe est retournée. La méthode de type de données de MakeValid()geography tente de retourner des instances valides, mais l’exactitude ou la précision des résultats n’est pas garantie.

Notes

Les objets qui ne sont pas valides peuvent être stockés dans la base de données. Les méthodes qui peuvent être exécutées sur des instances non valides (les instances pour lesquelles STIsValid() retourne False) sont des méthodes qui vérifient la validité ou permettent l’exportation : STIsValid(), MakeValid(), STAsText(), STAsBinary(), ToString(), AsTextZM() et AsGml().

Cette méthode n'est pas précise.

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() retourne la valeur 0 pour une instance non valide.

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

Le deuxième exemple utilise MakeValid() pour rendre l'instance valide et tester que l'instance est effectivement valide. STIsValid() retourne 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))  

Voir aussi

STIsValid (type de données geometry)
Méthodes étendues sur des instances geography