Partager via


CurveToLineWithTolerance (type de données geometry)

Retourne une approximation polygonale d'une instance geometry qui contient 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 faut utiliser une valeur maximale relative pour l'écart. Lorsque la valeur relative est définie sur 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 est calculée sous la forme d'un produit du paramètre de tolérance et du diamètre du rectangle englobant pour l'objet spatial.

Types de retour

SQL Server type de retour : geometry

Type de retour CLR : SqlGeometry

Exceptions

La définition d'une tolérance <= 0 lève une exception ArgumentOutOfRange.

Notes

Cette méthode peut spécifier une valeur de tolérance d'erreur pour le LineString obtenu.

Le tableau affiche le type d'instance retourné par CurveToLineWithTolerance() pour différents types.

Appel du type d'instance

Type spatial retourné

Instance géométrique vide

Instance GeometryCollection vide

Point et MultiPoint

Instance Point

MultiPoint

Instance Point ou MultiPoint

CircularString, CompoundCurve ou LineString

Instance LineString

MultiLineString

Instance LineString ou MultiLineString

CurvePolygon et Polygon

Instance Polygon

MultiPolygon

Instance Polygon ou MultiPolygon

GeometryCollection avec une instance unique qui ne contient pas de segment d'arc de cercle

L'instance contenue dans le GeometryCollection détermine le type d'instance retournée.

GeometryCollection avec une instance de segment d'arc de cercle unidimensionnelle unique (CircularString, CompoundCurve)

Instance LineString

GeometryCollection avec une instance de segment d'arc de cercle bidimensionnelle unique (CurvePolygon)

Instance Polygon

GeometryCollection avec plusieurs instances unidimensionnelles

Instance MultiLineString

GeometryCollection avec plusieurs instances bidimensionnelles

Instance MultiPolygon

GeometryCollection avec plusieurs instances de dimensions différentes

Instance GeometryCollection

Exemples

A.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 d'une instance CircularString :

DECLARE @g geometry;

SET @g = geometry::Parse('CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)');

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 geometry;

SET @g = geometry::Parse('MULTILINESTRING((1 3, 4 8, 6 9))');

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 geometry;

SET @g = geometry::Parse('MULTILINESTRING((1 3, 4 8, 6 9),(4 4, 9 18))');

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 défini avec la valeur True :

DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))';

SELECT @g.CurveToLineWithTolerance(.5,1).ToString();

E.Utilisation de la méthode sur une instance GeometryCollection

L'exemple suivant appelle CurveToLineWithTolerance() sur une GeometryCollection qui contient une instance CurvePolygon bidimensionnelle et une instance CircularString unidimensionnelle. CurveToLineWithTolerance() convertit des types de segment d'arc de cercle en types de segment linéaire et les retourne dans un type GeometryCollection.

DECLARE @g geometry;

SET @g = geometry::Parse('GEOMETRYCOLLECTION(CURVEPOLYGON( COMPOUNDCURVE(CIRCULARSTRING(0 2, 2 0, 4 2), (4 2, 0 2))), CIRCULARSTRING(4 4, 8 6, 9 5))');

SELECT @g.CurveToLineWithTolerance(0.1,0).STNumPoints(), @g.CurveToLineWithTolerance(0.1, 0).ToString();

Voir aussi

Référence

CurveToLineWithTolerance (type de données geography)

STCurveToLine (type de données geometry)