MakeValid (tipo de datos geography)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Convierte una instancia de geography que no es válida en una instancia de geography válida con un tipo de Open Geospatial Consortium (OGC) válido.

Si un objeto de entrada devuelve False para STIsValid(), MakeValid() convierte la instancia que no es válida en una instancia válida.

Este método del tipo de datos geography admite instancias de FullGlobe o instancias espaciales mayores que un hemisferio.

Sintaxis

  
.MakeValid ()  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Tipos de valor devuelto

Tipo de valor devuelto de SQL Server: geography

Tipo de valor devuelto de CLR: SqlGeography

Observaciones

Este método puede cambiar el tipo de la instancia de geography. Además, los puntos de una instancia de geography pueden desplazarse ligeramente. Los resultados de algunos métodos, como NumPoint(), pueden cambiar.

En los casos en los que la instancia espacial que no es válida corta en intersección con el ecuador y el valor de EnvelopeAngle() es 180, se devolverá una instancia de FullGlobe. El método MakeValid() del tipo de datos geography hará todo lo posible pare devolver instancias válidas, pero no está garantizado que los resultados sean precisos ni exactos.

Nota

Los objetos no válidos se pueden almacenar en la base de datos. Los métodos que se pueden ejecutar en instancias no válidas (aquellas en las que STIsValid() devuelve False) son métodos que comprueban la validez o permiten la exportación: STIsValid(), MakeValid(), STAsText(), STAsBinary(), ToString(), AsTextZM() y AsGml().

Este método no es preciso.

Ejemplos

En el primer ejemplo se crea una instancia de LineString no válida que se superpone a sí misma y usa STIsValid() para confirmar que es una instancia no válida. STIsValid() devuelve el valor 0 para una instancia no válida.

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

En el segundo ejemplo se usa MakeValid() para convertir la instancia en válida y comprobar que de hecho es así. STIsValid() devuelve el valor 1 para una instancia válida.

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

En el tercer ejemplo se comprueba cómo se ha cambiado la instancia para convertirla en una instancia válida.

SELECT @g.ToString();  

En este ejemplo, cuando se selecciona la instancia de LineString, los valores se devuelven como una instancia de MultiLineString válida.

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

Consulte también

STIsValid (tipo de datos geometry)
Métodos extendidos en instancias de geography