Compartilhar via


MakeValid (tipo de dados geometry)

Converte uma instância de geometry inválida em uma instância de geometry com um tipo OGC (Open Geospatial Consortium) válido.

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

.MakeValid ()

Tipos de retorno

SQL Server Tipo de retorno: geometry

Tipo de retorno CLR: SqlGeometry

Comentários

Esse método causa uma alteração no tipo de instância de geometry e faz com que os pontos de uma instância de geometry sejam levemente deslocados.

Exemplos

O primeiro exemplo cria uma instância inválida de LineString que se sobrepõe e usa STIsValid() para confirmar que é uma instância inválida. STIsValid() retorna o valor 0 para uma instância inválida.

DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(0 2, 1 1, 1 0, 1 1, 2 2)', 0);
SELECT @g.STIsValid();

O segundo exemplo usa MakeValid() pata tornar a instância válida e testar se ela é realmente válida. STIsValid() retorna o valor 1 para uma instância válida.

SET @g = @g.MakeValid();
SELECT @g.STIsValid();

O terceiro exemplo verifica como a instância foi alterada para se tornar uma instância válida.

SELECT @g.ToString();

Neste exemplo, quando a instância de LineString é selecionada, os valores são retornados como uma instância de MultiLineString válida.

MULTILINESTRING ((0 2, 1 1, 2 2), (1 1, 1 0))

O exemplo a seguir converte a instância de CircularString em uma instância de Ponto.

DECLARE @g geometry = 'CIRCULARSTRING(1 1, 1 1, 1 1)';
SELECT @g.MakeValid().ToString();

Consulte também

Referência

STIsValid (tipo de dados geometry)

Outros recursos

Métodos estendidos em instâncias geometry