CurveToLineWithTolerance (tipo de dados de geografia)
Retorna uma aproximação poligonal de uma instância de geography que contém segmentos de arco circulares.
Aplica-se a: SQL Server (SQL Server 2012 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual). |
Sintaxe
.CurveToLineWithTolerance( tolerance, relative )
Argumentos
tolerance
É uma expressão double que define o erro máximo entre o segmento de arco circular original e sua aproximação linear.relative
É uma expressão bool que indica se um máximo relativo para o desvio deverá ser usado ou não. Quando o relativo é definido como falso (0), um máximo absoluto é definido para o desvio que um aproximado linear poderá ter. Quando o relativo é definido como verdadeiro (1), a tolerância é calculada como um produto do parâmetro de tolerância e do diâmetro da caixa delimitadora do objeto espacial.
Tipos de retorno
SQL Server tipo de retorno: geography
Tipo de retorno CLR: SqlGeography
Exceções
A definição da tolerância <= 0 lança uma exceção ArgumentOutOfRange.
Comentários
Este método permite uma quantidade de tolerância de erro a ser especificada para a LineString resultante.
O método CurveToLineWithTolerance retornará uma instância LineString para uma instância CircularString ou CompoundCurve e a instância Polygon para uma instância CurvePolygon.
Exemplos
A.Usando valores de tolerância diferentes em uma instância de CircularString
O exemplo a seguir mostra como a definição da tolerância afeta a instância de LineString retornada de uma instância de 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.Usando o método em uma instância de MultiLineString que contém uma LineString
O exemplo a seguir mostra o que é retornado de uma instância de MultiLineString que só contém uma instância de 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.Usando o método em uma instância de MultiLineString que contém várias LineStrings
O exemplo a seguir mostra o que é retornado de uma instância de MultiLineString que contém mais de uma instância 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.Definindo o relativo como true para uma instância de CurvePolygon de invocação
O exemplo a seguir usa uma instância de CurvePolygon para chamar CurveToLineWithTolerance() com relative definido como verdadeiro:
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();