CurveToLineWithTolerance (type de données geography)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Retourne une approximation polygonale d’une instance geography contenant des segments d’arc de cercle.
Syntaxe
.CurveToLineWithTolerance( tolerance, relative )
Arguments
tolerance
Expression double qui définit l’erreur maximale entre le segment d’arc de cercle d’origine et son approximation linéaire.
relative
Expression bool qui indique s’il est nécessaire d’utiliser une valeur maximale relative pour l’écart. Si la valeur relative est False (0), une valeur maximale absolue est définie pour l'écart d'une approximation linéaire. Si la valeur relative est True (1), la tolérance se calcule en faisant le produit du paramètre de tolérance et du diamètre du rectangle englobant de l'objet spatial.
Types de retour
Type de retour SQL Server : geography
Type de retour CLR : SqlGeography
Exceptions
Si tolerance est <= 0, une exception ArgumentOutOfRange est levée.
Remarques
Cette méthode permet de spécifier une valeur de tolérance d’erreur pour le LineString résultant.
La méthode CurveToLineWithTolerance retourne une instance LineString pour une instance CircularString ou CompoundCurve, et une instance Polygon pour une instance CurvePolygon.
Exemples
R. Utilisation de valeurs de tolérance différentes sur une instance CircularString
L’exemple suivant montre comment la définition de la tolérance affecte l’instance LineString
retournée par une instance CircularString
:
DECLARE @g geography;
SET @g = geography::Parse('CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)');
SELECT @g.CurveToLineWithTolerance(0.1,0).STNumPoints(), @g.CurveToLineWithTolerance(0.01, 0).STNumPoints();
B. Utilisation de la méthode sur une instance MultiLineString qui contient un LineString
L'exemple suivant montre ce qui est retourné d'une instance MultiLineString
qui contient uniquement une instance LineString
:
DECLARE @g geography;
SET @g = geography::Parse('MULTILINESTRING((-122.358 47.653, -122.348 47.649))');
SELECT @g.CurveToLineWithTolerance(0.1,0).ToString();
C. Utilisation de la méthode sur une instance MultiLineString qui contient plusieurs LineStrings
L'exemple suivant montre ce qui est retourné d'une instance MultiLineString
qui contient plusieurs instances LineString
:
DECLARE @g geography;
SET @g = geography::Parse('MULTILINESTRING((-122.358 47.653, -122.348 47.649),(-123.358 47.653, -123.348 47.649))');
SELECT @g.CurveToLineWithTolerance(0.1,0).ToString();
D. Définition d'une valeur relative sur True pour appeler une instance CurvePolygon
L’exemple suivant utilise une instance CurvePolygon
pour appeler CurveToLineWithTolerance()
avec relative qui a la valeur true :
DECLARE @g geography = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658), (-122.348 47.658, -122.358 47.658, -122.358 47.653)))';
SELECT @g.CurveToLineWithTolerance(.5,1).ToString();