Partilhar via


MakeValid (tipo de dados geográficos)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Converte uma instância de geografia que não é válida em uma instância de geografia válida com um tipo de Consórcio Geoespacial Aberto (OGC) válido.

Se um objeto de entrada retornar False para STIsValid(), MakeValid() converte a instância que não é válida em uma instância válida.

Esse método de tipo de dados geográficos oferece suporte a instâncias FullGlobe ou instâncias espaciais maiores que um hemisfério.

Syntax

  
.MakeValid ()  

Tipos de devolução

Tipo de retorno do SQL Server: geografia

Tipo de retorno CLR: SqlGeography

Remarks

Este método pode alterar o tipo da instância geográfica . Além disso, os pontos de uma instância geográfica podem mudar ligeiramente. Os resultados de alguns métodos, como NumPoint(), podem mudar.

Nos casos em que a instância espacial inválida cruza o equador e tem um EnvelopeAngle() = 180, uma instância FullGlobe será retornada. O MakeValid() método de tipo de dados geográficos fará a melhor tentativa de retornar instâncias válidas, mas não é garantido que os resultados sejam precisos ou precisos.

Note

Os objetos que não são válidos podem ser armazenados no banco de dados. Os métodos que podem ser executados em instâncias inválidas (aquelas instâncias para as quais STIsValid() retornam False) são métodos que verificam a validade ou permitem a exportação: STIsValid(), MakeValid(), STAsText(), STAsBinary(), ToString(), AsTextZM() e AsGml().

Este método não é preciso.

Examples

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

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

O segundo exemplo usa MakeValid() para tornar a instância válida e para testar se a instância é realmente válida. STIsValid() Retorna o valor de 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 torná-la uma instância válida.

SELECT @g.ToString();  

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

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

Ver também

STIsValid (tipo de dados de geometria)
Métodos estendidos em instâncias geográficas