MakeValid (type de données geography)
Convertit une instance geography qui n'est pas valide en instance geography valide avec un type Open Geospatial Consortium (OGC) valide.
Si un objet d'entrée retourne False pour STIsValid(), MakeValid() convertit l'instance qui n'est pas valide en instance valide.
Cette méthode de type de données geography prend en charge des instances FullGlobe ou des instances spatiales qui sont plus grandes qu'un hémisphère.
Syntaxe
.MakeValid ()
Types de retour
SQL Server type de retour : geography
Type de retour CLR : SqlGeography
Notes
Cette méthode peut modifier le type de l'instance geography. En outre, les points d'une instance geography peuvent bouger 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 dont EnvelopeAngle() = 180, une instance FullGlobe est retournée. La méthode de type de données de MakeValid()geography fera de son mieux pour retourner des instances valides, mais l'exactitude ou la précision des résultats n'est pas garantie.
[!REMARQUE]
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 (ces instances pour lesquelles STIsValid() retournent 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
Référence
STIsValid (type de données geometry)