Compartilhar via


MakeValid (tipo de dados geometry)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

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

Sintaxe

  
.MakeValid ()  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Tipos de retorno

Tipo de retorno do SQL Server: geometry

Tipo de retorno do 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 um pouco 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

STIsValid (tipo de dados geometry)
Métodos estendidos em instâncias geometry