Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
Retourne une approximation polygonale d’une instance geometry contenant des segments d’arc de cercle.
Syntax
.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. 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
Type de retour SQL Server : geometry
Type de retour CLR : SqlGeometry
Exceptions
La définition d’une tolérance <= 0 lève une exceptionArgumentOutOfRange.
Remarks
Cette méthode peut spécifier une valeur de tolérance d’erreur pour le LineString résultant.
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 ponctuelle |
| MultiPoint | Instance Point ou MultiPoint |
| CircularString, CompoundCurve ou LineString | Instance LineString |
| MultiLineString | Instance LineString ou MultiLineString |
| CurvePolygon et Polygon | Instance polygonale |
| MultiPolygon | Instance Polygon ou MultiPolygon |
| GeometryCollection avec une instance unique qui ne contient pas de segment d’arc de cercle | L’instance contenue dans GeometryCollection détermine le type d’instance retourné. |
| GeometryCollection avec une seule instance de segment d’arc de cercle unidimensionnelle (CircularString, CompoundCurve) | Instance LineString |
| GeometryCollection avec une seule instance de segment d’arc de cercle bidimensionnelle (CurvePolygon) | Instance polygonale |
| GeometryCollection avec plusieurs instances unidimensionnelles | Instance MultiLineString |
| GeometryCollection avec plusieurs instances bidimensionnelles | Instance MultiPolygon |
| GeometryCollection avec plusieurs instances de différentes dimensions | Instance GeometryCollection |
Examples
A. Utilisation de valeurs de tolérance différentes sur une instance CircularString
L’exemple suivant montre comment définir la tolérance affecte l’instance LineString retournée à partir d’une CircularString instance :
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 qui a 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
CurveToLineWithTolerance (type de données geography)
STCurveToLine (type de données geometry)